<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Function module/BAPI/Class for Cancel pick in SAP EWM	</title>
	<atom:link href="https://www.sapewmhelp.com/question/function-module-bapi-class-for-cancel-pick-in-sap-ewm-2/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.sapewmhelp.com/question/function-module-bapi-class-for-cancel-pick-in-sap-ewm-2/</link>
	<description>SAP EWM questions answered by experts — ABAP, S/4HANA, warehouse management</description>
	<lastBuildDate>Sat, 01 Aug 2026 15:40:14 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.3</generator>
	<item>
		<title>
		By: admin		</title>
		<link>https://www.sapewmhelp.com/question/function-module-bapi-class-for-cancel-pick-in-sap-ewm-2/#comment-309</link>

		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 01 Aug 2026 15:40:14 +0000</pubDate>
		<guid isPermaLink="false">https://www.sapewmhelp.com/question/function-module-bapi-class-for-cancel-pick-in-sap-ewm-2/#comment-309</guid>

					<description><![CDATA[Try following code, It will work

FUNCTION zewm_f_cancel_pick.
*&quot;----------------------------------------------------------------------
*&quot;*&quot;Local Interface:
*&quot;  IMPORTING
*&quot;     VALUE(IV_LGNUM) TYPE  /SCWM/LGNUM
*&quot;     VALUE(IT_DOCID) TYPE  /SCWM/DLV_DOCID_ITEM_TAB
*&quot;     VALUE(IV_QNAME) TYPE  TRFCQNAM
*&quot;----------------------------------------------------------------------
  WAIT UP TO 2 SECONDS.
  DATA: lo_hu_mon    TYPE REF TO zcl_ewm_cancpick_mon.
  DATA: lv_noexecute TYPE sy-input.
  DATA: lt_ret       TYPE bapirettab.
  DATA: lv_msg       TYPE msgtx.

*--Append message for queue start
  MESSAGE s171 INTO lv_msg.
  PERFORM add_message TABLES lt_ret
                      USING  lv_msg.

*--Get HU List
  TRY.
      DATA(lo_dlv) = /scwm/cl_dlv_management_prd=&#062;get_instance( ).
      DATA(ls_read_options) = VALUE /scwm/dlv_query_contr_str( data_retrival_only = abap_true ). &quot;lock_result = abap_true
      DATA(ls_include)      = VALUE /scwm/dlv_query_incl_str_prd( head_status = abap_true ).
      lo_dlv-&#062;query(
        EXPORTING
          iv_doccat       = /scdl/if_dl_c=&#062;sc_doccat_out_prd
          it_docid        = it_docid
          is_read_options = ls_read_options
          is_include_data = ls_include
        IMPORTING
          et_headers      = DATA(lt_headers)
          et_hu_headers   = DATA(lt_hu_headers)
          et_hu_items     = DATA(lt_hu_items)
          eo_message      = DATA(lo_message) ).

    CATCH /scdl/cx_delivery INTO DATA(lx_dlv).

  ENDTRY.

*--Cancelpick Delivery
  lo_hu_mon = zcl_ewm_cancpick_mon=&#062;get_instance( ).

  lo_hu_mon-&#062;/scwm/if_mon_hu~cancel_hu_pick(
    EXPORTING
      iv_lgnum = iv_lgnum
      it_data  = lt_hu_headers
  ).

  DATA(lt_return) = lo_hu_mon-&#062;get_message( ).

*--Append message for queue ending
  MESSAGE s172 INTO lv_msg.
  PERFORM add_message TABLES lt_ret
                      USING  lv_msg.

*--form return table for the queue
  IF lt_ret[] IS NOT INITIAL.
    APPEND LINES OF lt_ret TO lt_return.
  ENDIF.

  IF VALUE #( lt_return[ type = &#039;E&#039; ]-type OPTIONAL ) = &#039;E&#039;.
    /spe/cl_qrfc_services=&#062;end_queue_processing(
      EXPORTING
        it_message = lt_return                 &quot; Table with BAPI Return Information
    ).
  ENDIF.
  /spe/cl_qrfc_services=&#062;end_queue_processing(
    EXPORTING
      it_message = lt_return                 &quot; Table with BAPI Return Information
  ).

*create Queue FM for update
  CALL FUNCTION &#039;TRFC_SET_QIN_PROPERTIES&#039;
    EXPORTING
      qin_name           = iv_qname
      no_execute         = lv_noexecute
    EXCEPTIONS
      invalid_queue_name = 1
      OTHERS             = 2.

  CALL FUNCTION &#039;ZEWM_F_CANCEL_PICK_MOVE&#039;
    IN BACKGROUND TASK AS SEPARATE UNIT
    DESTINATION &#039;NONE&#039;
    EXPORTING
      iv_lgnum  = iv_lgnum
      it_hu_hdr = lt_hu_headers
      it_hu_itm = lt_hu_items.

  COMMIT WORK AND WAIT.

  /spe/cl_qrfc_services=&#062;end_queue_processing(
    EXPORTING
      it_message = lt_return                 &quot; Table with BAPI Return Information
  ).
ENDFUNCTION.]]></description>
			<content:encoded><![CDATA[<p>Try following code, It will work</p>
<p>FUNCTION zewm_f_cancel_pick.<br />
*&#8221;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
*&#8221;*&#8221;Local Interface:<br />
*&#8221;  IMPORTING<br />
*&#8221;     VALUE(IV_LGNUM) TYPE  /SCWM/LGNUM<br />
*&#8221;     VALUE(IT_DOCID) TYPE  /SCWM/DLV_DOCID_ITEM_TAB<br />
*&#8221;     VALUE(IV_QNAME) TYPE  TRFCQNAM<br />
*&#8221;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
  WAIT UP TO 2 SECONDS.<br />
  DATA: lo_hu_mon    TYPE REF TO zcl_ewm_cancpick_mon.<br />
  DATA: lv_noexecute TYPE sy-input.<br />
  DATA: lt_ret       TYPE bapirettab.<br />
  DATA: lv_msg       TYPE msgtx.</p>
<p>*&#8211;Append message for queue start<br />
  MESSAGE s171 INTO lv_msg.<br />
  PERFORM add_message TABLES lt_ret<br />
                      USING  lv_msg.</p>
<p>*&#8211;Get HU List<br />
  TRY.<br />
      DATA(lo_dlv) = /scwm/cl_dlv_management_prd=&gt;get_instance( ).<br />
      DATA(ls_read_options) = VALUE /scwm/dlv_query_contr_str( data_retrival_only = abap_true ). &#8220;lock_result = abap_true<br />
      DATA(ls_include)      = VALUE /scwm/dlv_query_incl_str_prd( head_status = abap_true ).<br />
      lo_dlv-&gt;query(<br />
        EXPORTING<br />
          iv_doccat       = /scdl/if_dl_c=&gt;sc_doccat_out_prd<br />
          it_docid        = it_docid<br />
          is_read_options = ls_read_options<br />
          is_include_data = ls_include<br />
        IMPORTING<br />
          et_headers      = DATA(lt_headers)<br />
          et_hu_headers   = DATA(lt_hu_headers)<br />
          et_hu_items     = DATA(lt_hu_items)<br />
          eo_message      = DATA(lo_message) ).</p>
<p>    CATCH /scdl/cx_delivery INTO DATA(lx_dlv).</p>
<p>  ENDTRY.</p>
<p>*&#8211;Cancelpick Delivery<br />
  lo_hu_mon = zcl_ewm_cancpick_mon=&gt;get_instance( ).</p>
<p>  lo_hu_mon-&gt;/scwm/if_mon_hu~cancel_hu_pick(<br />
    EXPORTING<br />
      iv_lgnum = iv_lgnum<br />
      it_data  = lt_hu_headers<br />
  ).</p>
<p>  DATA(lt_return) = lo_hu_mon-&gt;get_message( ).</p>
<p>*&#8211;Append message for queue ending<br />
  MESSAGE s172 INTO lv_msg.<br />
  PERFORM add_message TABLES lt_ret<br />
                      USING  lv_msg.</p>
<p>*&#8211;form return table for the queue<br />
  IF lt_ret[] IS NOT INITIAL.<br />
    APPEND LINES OF lt_ret TO lt_return.<br />
  ENDIF.</p>
<p>  IF VALUE #( lt_return[ type = &#8216;E&#8217; ]-type OPTIONAL ) = &#8216;E&#8217;.<br />
    /spe/cl_qrfc_services=&gt;end_queue_processing(<br />
      EXPORTING<br />
        it_message = lt_return                 &#8221; Table with BAPI Return Information<br />
    ).<br />
  ENDIF.<br />
  /spe/cl_qrfc_services=&gt;end_queue_processing(<br />
    EXPORTING<br />
      it_message = lt_return                 &#8221; Table with BAPI Return Information<br />
  ).</p>
<p>*create Queue FM for update<br />
  CALL FUNCTION &#8216;TRFC_SET_QIN_PROPERTIES&#8217;<br />
    EXPORTING<br />
      qin_name           = iv_qname<br />
      no_execute         = lv_noexecute<br />
    EXCEPTIONS<br />
      invalid_queue_name = 1<br />
      OTHERS             = 2.</p>
<p>  CALL FUNCTION &#8216;ZEWM_F_CANCEL_PICK_MOVE&#8217;<br />
    IN BACKGROUND TASK AS SEPARATE UNIT<br />
    DESTINATION &#8216;NONE&#8217;<br />
    EXPORTING<br />
      iv_lgnum  = iv_lgnum<br />
      it_hu_hdr = lt_hu_headers<br />
      it_hu_itm = lt_hu_items.</p>
<p>  COMMIT WORK AND WAIT.</p>
<p>  /spe/cl_qrfc_services=&gt;end_queue_processing(<br />
    EXPORTING<br />
      it_message = lt_return                 &#8221; Table with BAPI Return Information<br />
  ).<br />
ENDFUNCTION.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
