А, вот оно что. Это тебе в ABAP писать надо было, ну да ладно 
Вот так я делал, намучался правда сильно, модуль недокументирован, но другого способа я не нашел.
ebeln - номер заказа на перемещение
ekpo_tab - внутренняя таблица позиций заказа
ekko_line - заголовок
ekpv_line - данные отгрузки
IT_KEY_LINE-PANUM = 1.		
IT_KEY_LINE-VBOBJ = 'B'.
IT_KEY_LINE-VBTYP = 'V'.		
IT_KEY_LINE-VBELN = ebeln.
  		
*IT_KEY_LINE-POSNR		
IT_KEY_LINE-ID    = 1.
  			
IT_KEY_LINE-KZAZU = 'X'.
  		
IT_KEY_LINE-LEDAT = sy-datum.
  		
IT_KEY_LINE-TABIX = 1.
  		
*IT_KEY_LINE-ENQUE_VORG	
IT_KEY_LINE-VSTEL = ekpv_line-vstel.
  		
IT_KEY_LINE-KUNWE = ekpv_line-kunnr.
  		
append IT_KEY_LINE to IT_KEY_TO_ENQUE.
*** Таблица IT_KOMDLGN
  refresh IT_KOMDLGN.
  loop at ekpo_tab.
    clear IT_KOMDLGN_LINE.
    move-corresponding ekko_line to IT_KOMDLGN_LINE.
    move-corresponding ekpo_tab to IT_KOMDLGN_LINE.
    move-corresponding ekpv_line to IT_KOMDLGN_LINE.
    IT_KOMDLGN_LINE-LFART = 'NL'.
    IT_KOMDLGN_LINE-DLVTP = 'TP'.
    IT_KOMDLGN_LINE-VGBEL = ekpo_tab-EBELN.
    IT_KOMDLGN_LINE-VGPOS = ekpo_tab-EBELP.
    IT_KOMDLGN_LINE-LFIMG = ekpo_tab-MENGE.
    IT_KOMDLGN_LINE-VGTYP = 'V'.
    IT_KOMDLGN_LINE-KUNWE = ekpv_line-kunnr.
    IT_KOMDLGN_LINE-VRKME = ekpo_tab-MEINS.
    IT_KOMDLGN_LINE-LFDAT = POHEADER-VPER_START.
    IT_KOMDLGN_LINE-WADAT = POHEADER-VPER_START.
    IT_KOMDLGN_LINE-WADAT_IST = POHEADER-VPER_START.
    IT_KOMDLGN_LINE-WERKS = ekko_line-RESWK.
*  IT_KOMDLGN_LINE-VGTYP = 'V'.
*  IT_KOMDLGN_LINE-VGTYP = 'V'.
    append IT_KOMDLGN_LINE to IT_KOMDLGN.
  endloop.
**** Создаем поставку
  CALL FUNCTION 'SHP_VL10_DELIVERY_CREATE'
    EXPORTING
      IF_LEDAT                      = IF_LEDAT
      IF_NUR_VORGABE_POS            = 'X'
      IT_KEY_TO_ENQUE               = IT_KEY_TO_ENQUE
      IT_KOMDLGN                    = IT_KOMDLGN
*    IF_SEL_CRIT_IGNORE_ITEM       = 'X'
* TABLES
*   IT_VETVG                      =
*   IT_LEDAT_RANGE                =
*   IT_VSBED_RANGE                =
*   IT_MATNR_RANGE                =
*   IT_MATKL_RANGE                =
*   IT_WAKTI_RANGE                =
*   IT_WERKS_RANGE                =
*   IT_LGORT_RANGE                =
*   IT_ABLAD_RANGE                =
*   IT_AULWE_RANGE                =
*   IT_WADAT_RANGE                =
*   IT_WAUHR_RANGE                =
    CHANGING
      CX_SD_ORDER                   = CX_SD_ORDER
      CT_VBSK_ALL                   = CT_VBSK_ALL
      CT_VBLS                       = CT_VBLS
      CT_KEY_LATE                   = CT_KEY_LATE
*   CT_VORGABE_DATEN              =
*   CT_VORGABE_LATE               =
            .
**** Обрабатываем сообщения
  read table CT_VBSK_ALL into VBSK_LINE index 1.
  select single * from VBFS into VBFS_line
          where SAMMG = VBSK_LINE-SAMMG
            and MSGTY = 'E'.
**** Если были критические ошибки - записываем сообщение
  if sy-subrc = 0.
  endif.
Вот как-то так 
