Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

inbound Sproxy

b_s_charumathi17
Explorer
0 Kudos

Hi ,

I am a Abaper. new to sproxy.my requirement was to add three new fields to the existing. The existing proxy will trigger a goods movement using a bapi and the errors will be recorded in ztable. Now they are saying the load is not reflected in sap system.ztable is not updated how to check in the abap end.or is this check needs to be done by PI team.kindly aadvice.

Regards,

Charumathi B

my code below

TYPES: BEGIN OF lty_sale_its1.
* INCLUDE TYPE zmm_sale_its AS sales_its.
types: MANDT type mandt,"like zmm_sale_its-mandt,
DATE_TIME type ZDATE_TIME,
ARTICLE_CODE type matnr,
BATCH type charg_d,
ORDER_NUMBER type vbeln,
BARCODE type ZBARCODE_POS,
ITEM_QTY type MENGE_D,
ITEM_UO_M type ZUOM,
STORE_CODE type EKORG,
SECTION_CODE type EKGRP,
DOC_NUM type KBELN,
STO_NUM type zsto,
DOC_DATE type string,
TYPE type BAPI_MTYPE,
MESSAGE type BAPI_MSG,
SALES_DATE type string,
SALES_PRICE type NETWR,
item_no TYPE posnr,
order type vbeln,
uom1 type meins,
* order type vbeln,
* uom1 type meins,
END OF lty_sale_its1.

DATA: lt_sales_its_cpy TYPE TABLE OF lty_sale_its1,
ls_sales_its_cpy TYPE lty_sale_its1,
lt_sales_its TYPE TABLE OF lty_sale_its1,
lt_sales_its_db TYPE TABLE OF zmm_sale_its,
ls_sales_its_db TYPE zmm_sale_its,
ls_sales_its TYPE lty_sale_its1,
lv_item TYPE posnr,
ls_pohead TYPE zcl_mm_issue_to_store=>gty_pohead,
lt_poitem TYPE zcl_mm_issue_to_store=>gtt_poitem,
ls_poitem TYPE zcl_mm_issue_to_store=>gty_poitem,
lo_issue TYPE REF TO zcl_mm_issue_to_store,
lr_mtr_item TYPE RANGE OF posnr.
DATA: lt_return TYPE TABLE OF bapiret2,
* lt_poitem TYPE TABLE OF bapimepoitem,
lt_goodsmvt_item TYPE TABLE OF bapi2017_gm_item_create.

CONSTANTS: lc_351 TYPE bwart VALUE '351',
lc_101 TYPE bwart VALUE '101',
lc_goods_movement_code_351 TYPE gm_code VALUE '04',
lc_goods_movement_code_101 TYPE gm_code VALUE '01',
lc_mvt_ind_351 TYPE kzbew VALUE ' ',
lc_mvt_ind_101 TYPE kzbew VALUE 'B'.
CONSTANTS: lc_X61 TYPE bwart VALUE 'X61',
lc_X62 TYPE bwart VALUE 'X62',
lc_goods_movement_code_X61 TYPE gm_code VALUE '04',
lc_goods_movement_code_X62 TYPE gm_code VALUE '05',
lc_mvt_ind_X61 TYPE kzbew VALUE ' ',
lc_mvt_ind_X62 TYPE kzbew VALUE ' '.
DATA: ls_poheader TYPE bapimepoheader,
ls_goodsmvt_item TYPE bapi2017_gm_item_create,
ls_goodsmvt_header TYPE bapi2017_gm_head_01,
lv_goods_movement_code TYPE gm_code,
lv_materialdocument TYPE bapi2017_gm_head_ret-mat_doc,
lv_matdocumentyear TYPE bapi2017_gm_head_ret-doc_year,
es_return TYPE bapiret2,
lv_item1 TYPE ebelp VALUE 10,
order(10) type c,
item(2) type c,
uom type meins.

data:doc_year(4) type c,
doc_month(2) type c,
doc_date(2) type c,
post_year(4) type c,
post_month(2) type c,
post_date(2) type c,
doc_date1(8) type c,
post_date1(8) type c,
gr_users TYPE rsis_t_range.
* lc_sale_if TYPE rvari_vnam VALUE 'Z_SALES_CONTROL',
* lc_s TYPE c VALUE 'S'.

lt_sales_its = CORRESPONDING #( input-mt_store_sale_master_rest2prox-inv_details ).

select matnr , charg ,clabs , werks,lgort from mchb into TABLE @DATA(lt_stock)
for all entries in @lt_sales_its where matnr = @lt_sales_its-ARTICLE_CODE
and charg = @lt_sales_its-BATCH.

* gr_users = zcl_tvarvc_data=>get_tvarvc( im_name = lc_sale_if im_type = lc_s ).

LOOP AT lt_sales_its INTO ls_sales_its.
lv_item = lv_item + 1.
ls_sales_its-item_no = lv_item.
ls_sales_its-date_time = |{ sy-datum }{ sy-uzeit }{ lv_item }|.
split lS_sales_its-order_number at '/' into order item .
ls_sales_its-order = order.
ls_sales_its-uom1 = ls_sales_its-ITEM_UO_M.
** split ls_sales_its-doc_date at '-' into doc_year doc_month doc_date.
** concatenate doc_year doc_month doc_date into doc_date1.
* ls_sales_its-doc_date = sy-datum."doc_date1.
* split ls_sales_its-sales_date at '-' into post_year post_month post_date.
* concatenate post_year post_month post_date into post_date1.
* ls_sales_its-sales_date = post_date1.
split ls_sales_its-sales_date at '-' into doc_year doc_month doc_date.
concatenate doc_year doc_month doc_date into doc_date1.
ls_sales_its-sales_date = doc_date1.
ls_sales_its-doc_date = doc_date1.
*loop at gr_users

CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
input = ls_sales_its-ITEM_UO_M
IMPORTING
output = UOm
EXCEPTIONS
unit_not_found = 1
OTHERS = 2.
ls_sales_its-ITEM_UO_M = uom.
if ls_sales_its-store_code eq 'S001' or ls_sales_its-store_code = 'S101'.
APPEND ls_sales_its TO lt_sales_its_cpy.
else.
ls_sales_its_db-mandt = sy-mandt.
ls_sales_its_db-date_time = ls_sales_its-date_time.

ls_sales_its_db-section_code = ls_sales_its-section_code.
ls_sales_its_db-doc_num = ls_sales_its-doc_num.
ls_sales_its_db-sto_num = ls_sales_its-sto_num.
ls_sales_its_db-doc_date = ls_sales_its-doc_date.
ls_sales_its_db-store_code = ls_sales_its-store_code.
ls_sales_its_db-order_number = ls_sales_its-order_number.
ls_sales_its_db-sales_date = ls_sales_its-SALES_DATE.
ls_sales_its_db-article_code = ls_sales_its-article_code.
ls_sales_its_db-batch = ls_sales_its-batch.
ls_sales_its_db-barcode = ls_sales_its-barcode.
ls_sales_its_db-item_qty = ls_sales_its-item_qty.
ls_sales_its_db-item_uo_m = ls_sales_its-uom1 .
ls_sales_its_db-type = 'E'.
ls_sales_its_db-message = 'This material not maintained in S001 or S101' .
ls_sales_its_db-sales_price = ls_sales_its_cpy-sales_price.
*
*
append ls_sales_its_db to lt_sales_its_db.
* ENDLOOP.
MODIFY zmm_sale_its FROM TABLE lt_sales_its_db.
commit work.

endif.
clear ls_sales_its_db.
ENDLOOP.
refresh lt_sales_its_db[].
lt_sales_its = lt_sales_its_cpy.
* SORT lt_sales_its BY batch.
*
* SORT lt_sales_its BY batch item_no.
* DELETE ADJACENT DUPLICATES FROM lt_sales_its COMPARING batch.


*lt_sales_its_cpy = CORRESPONDING #( lt_sales_its ).

SORT lt_sales_its_cpy BY order .
DELETE ADJACENT DUPLICATES FROM lt_sales_its_cpy COMPARING order.
LOOP AT lt_sales_its_cpy INTO ls_sales_its_cpy.
*ls_goodsmvt_header-pstng_date = sy-datum."Charu
ls_goodsmvt_header-pstng_date = sy-datum."ls_sales_its_cpy-sales_date.
ls_goodsmvt_header-doc_date = ls_sales_its_cpy-sales_date ."ls_sales_its_cpy-doc_date.
* ls_goodsmvt_header-ref_doc_no = ls_poheader-po_number.
* ls_goodsmvt_header-bill_of_lading = lS_sales_its-order_num.
* split lS_sales_its-order_num at '/' into order item .
ls_goodsmvt_header-HEADER_TXT = ls_sales_its_cpy-order.
* LOOP AT lt_poitem INTO DATA(ls_poitem).
* ls_goodsmvt_item-material = lS_sales_its-ARTICLE_CODE.
LOOP AT lt_sales_its INTO ls_sales_its WHERE order = ls_sales_its_cpy-order.
ls_goodsmvt_item-material_long = lS_sales_its-article_code.
ls_goodsmvt_item-move_type = 'X62'."im_movtype.
* ls_goodsmvt_item-po_number = ' 'ls_poheader-po_number.
ls_goodsmvt_item-po_item = lv_item1 ."= lv_item + 10.
ls_goodsmvt_item-entry_uom = lS_sales_its-item_uo_m.
ls_goodsmvt_item-base_uom = lS_sales_its-item_uo_m.
ls_goodsmvt_item-entry_qnt = lS_sales_its-item_qty.
ls_goodsmvt_item-quantity = lS_sales_its-item_qty.
ls_goodsmvt_item-batch = lS_sales_its-batch.

ls_goodsmvt_item-plant = lS_sales_its-store_code.
ls_goodsmvt_item-mvt_ind = lc_mvt_ind_x62.
lv_goods_movement_code = lc_goods_movement_code_x62.
* ls_goodsmvt_item-mvt_ind = lc_mvt_ind_X62.
* lv_goods_movement_code = lc_goods_movement_code_X62.
ls_goodsmvt_item-stge_loc = '1001'."ls_poitem-stge_loc'.
ls_goodsmvt_item-item_text = lS_sales_its-sales_price.
* code added by Charumathi
* ENDIF.
read table lt_stock into data(ls_stock) with key matnr = lS_sales_its-article_code
werks = lS_sales_its-store_code
lgort = '1001'
charg = ls_sales_its-BATCH.
if sy-subrc eq 0 .
if ls_stock-clabs ge ls_sales_its-item_qty.
APPEND ls_goodsmvt_item TO lt_goodsmvt_item.
CLEAR: ls_goodsmvt_item.
lv_item = lv_item1 + 10.
else.
ls_sales_its_db-mandt = sy-mandt.
ls_sales_its_db-date_time = ls_sales_its_cpy-date_time.

ls_sales_its_db-section_code = ls_sales_its_cpy-section_code.
ls_sales_its_db-doc_num = ls_sales_its_cpy-doc_num.
ls_sales_its_db-sto_num = ls_sales_its_cpy-sto_num.
ls_sales_its_db-doc_date = ls_sales_its_cpy-doc_date.
ls_sales_its_db-store_code = ls_sales_its_cpy-store_code.

ls_sales_its_db-sales_date = ls_sales_its_cpy-sales_date.
ls_sales_its_db-order_number = ls_sales_its-order_number.
ls_sales_its_db-article_code = ls_sales_its-article_code.
ls_sales_its_db-batch = ls_sales_its-batch.
ls_sales_its_db-barcode = ls_sales_its-barcode.
ls_sales_its_db-item_qty = ls_sales_its-item_qty.
ls_sales_its_db-item_uo_m = ls_sales_its-uom1 .
ls_sales_its_db-type = 'E'.
ls_sales_its_db-message = 'Stock not available' .
ls_sales_its_db-sales_price = ls_sales_its_cpy-sales_price.

append ls_sales_its_db to lt_sales_its_db.

MODIFY zmm_sale_its FROM TABLE lt_sales_its_db.
commit work.
endif.
else.
ls_sales_its_db-mandt = sy-mandt.
ls_sales_its_db-date_time = ls_sales_its_cpy-date_time.

ls_sales_its_db-section_code = ls_sales_its_cpy-section_code.
ls_sales_its_db-doc_num = ls_sales_its_cpy-doc_num.
ls_sales_its_db-sto_num = ls_sales_its_cpy-sto_num.
ls_sales_its_db-doc_date = ls_sales_its_cpy-doc_date.
ls_sales_its_db-store_code = ls_sales_its_cpy-store_code.

ls_sales_its_db-sales_date = ls_sales_its_cpy-sales_date.
ls_sales_its_db-order_number = ls_sales_its-order_number.
ls_sales_its_db-article_code = ls_sales_its-article_code.
ls_sales_its_db-batch = ls_sales_its-batch.
ls_sales_its_db-barcode = ls_sales_its-barcode.
ls_sales_its_db-item_qty = ls_sales_its-item_qty.
ls_sales_its_db-item_uo_m = ls_sales_its-uom1 .
ls_sales_its_db-type = 'E'.
ls_sales_its_db-message = 'Stock not available' .
ls_sales_its_db-sales_price = ls_sales_its_cpy-sales_price.

append ls_sales_its_db to lt_sales_its_db.

MODIFY zmm_sale_its FROM TABLE lt_sales_its_db.
commit work.
endif.
ENDLOOP.

IF line_exists( lt_goodsmvt_item[ 1 ] ).

CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = ls_goodsmvt_header
goodsmvt_code = lv_goods_movement_code
IMPORTING
materialdocument = lv_materialdocument
matdocumentyear = lv_matdocumentyear
TABLES
goodsmvt_item = lt_goodsmvt_item
return = lt_return.

CLEAR: ls_goodsmvt_header.
refresh lt_goodsmvt_item[] .

READ TABLE lt_return INTO es_return WITH KEY type = 'E'.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
* lt_sales_its_db = CORRESPONDING #( lt_sales_its ).
* loop at lt_sales_its_db into ls_sales_its_db.
ls_sales_its_db-mandt = sy-mandt.
ls_sales_its_db-date_time = ls_sales_its_cpy-date_time.

ls_sales_its_db-section_code = ls_sales_its_cpy-section_code.
ls_sales_its_db-doc_num = ls_sales_its_cpy-doc_num.
ls_sales_its_db-sto_num = ls_sales_its_cpy-sto_num.
ls_sales_its_db-doc_date = ls_sales_its_cpy-doc_date.
ls_sales_its_db-store_code = ls_sales_its_cpy-store_code.

ls_sales_its_db-SALES_DATE = ls_sales_its_cpy-SALES_DATE .

LOOP AT lt_sales_its INTO ls_sales_its WHERE order = ls_sales_its_cpy-order.
ls_sales_its_db-ORDER_NUMBER = ls_sales_its-ORDER_NUMBER.
ls_sales_its_db-article_code = ls_sales_its-article_code.
ls_sales_its_db-batch = ls_sales_its-batch.
ls_sales_its_db-barcode = ls_sales_its-barcode.
ls_sales_its_db-item_qty = ls_sales_its-item_qty.
ls_sales_its_db-item_uo_m = ls_sales_its-uom1 .
ls_sales_its_db-type = 'E'.
ls_sales_its_db-message = es_return-message .
ls_sales_its_db-sales_price = ls_sales_its_cpy-sales_price.

* ls_sales_its_db-TYPE = 'E'.
** lt_sales_its_db-sto_num = lv_materialdocument.
* ls_sales_its_db-message = es_return-message .
* MODIFY lt_sales_its_db FROM ls_sales_its_db.
append ls_sales_its_db to lt_sales_its_db.
ENDLOOP.
MODIFY zmm_sale_its FROM TABLE lt_sales_its_db.
commit work.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ls_sales_its_db-mandt = sy-mandt.
ls_sales_its_db-date_time = ls_sales_its_cpy-date_time.

ls_sales_its_db-section_code = ls_sales_its_cpy-section_code.
ls_sales_its_db-doc_num = ls_sales_its_cpy-doc_num.
ls_sales_its_db-sto_num = lv_materialdocument."ls_sales_its_cpy-sto_num.
ls_sales_its_db-doc_date = ls_sales_its_cpy-doc_date.
ls_sales_its_db-store_code = ls_sales_its_cpy-store_code.

ls_sales_its_db-SALES_DATE = ls_sales_its_cpy-SALES_DATE.

LOOP AT lt_sales_its INTO ls_sales_its WHERE order = ls_sales_its_cpy-order.
ls_sales_its_db-order_number = ls_sales_its-order_number.
ls_sales_its_db-article_code = ls_sales_its-article_code.
ls_sales_its_db-batch = ls_sales_its-batch.
ls_sales_its_db-barcode = ls_sales_its-barcode.
ls_sales_its_db-item_qty = ls_sales_its-item_qty.
ls_sales_its_db-item_uo_m = ls_sales_its-uom1 .
ls_sales_its_db-type = 'S'.
ls_sales_its_db-message = 'Stock transferred succesfully'.
.
ls_sales_its_db-sales_price = ls_sales_its_cpy-sales_price.

* ls_sales_its_db-TYPE = 'E'.
** lt_sales_its_db-sto_num = lv_materialdocument.
* ls_sales_its_db-message = es_return-message .
* MODIFY lt_sales_its_db FROM ls_sales_its_db.
append ls_sales_its_db to lt_sales_its_db.
ENDLOOP.
MODIFY zmm_sale_its FROM TABLE lt_sales_its_db.
commit work.
ENDIF.
ENDIF.
clear ls_sales_its_cpy.

ENDLOOP.

0 REPLIES 0