Skip to Content
0
Aug 01, 2006 at 10:48 AM

L_TO_CREATE_DN

396 Views

Hi,

in my code i have:

SELECT * FROM lips INTO TABLE tlips WHERE vbeln = likp-vbeln.

IF NOT tlips[] IS INITIAL.

CLEAR: it_delit, l_wa_delit.

REFRESH it_delit.

LOOP AT tlips INTO wa_tlips.

  • Compruebo el estatus de la posición

CLEAR l_kosta.

SELECT SINGLE kosta FROM vbup INTO l_kosta

WHERE vbeln = wa_tlips-vbeln

AND posnr = wa_tlips-posnr.

CHECK l_kosta <> 'C'.

CLEAR: lv_tanum, lv_teilk.

CLEAR: l_wa_delit, it_delit.

REFRESH it_delit.

  • posición

l_wa_delit-posnr = wa_tlips-posnr.

  • cantidad

l_wa_delit-anfme = wa_tlips-lfimg.

  • ud. medida alternativa

l_wa_delit-altme = wa_tlips-meins.

  • ua

l_wa_delit-vlenr = lein-lenum.

  • Tipo alm.procedencia

l_wa_delit-vltyp = lein-lgtyp.

    • Área de almacén de procedencia

  • l_wa_delit-vlber = '001'.

  • Ubic.proced.

  • l_wa_delit-vlpla = lein-lgpla.

      • Posición en la ubicación de procedencia

    • l_wa_delit-vppos = wa_ltap-vppos.

    • APPEND l_wa_delit TO it_delit.

      break-point.

      CALL FUNCTION 'L_TO_CREATE_DN'

      EXPORTING

      I_LGNUM = rm07m-lgnum

      I_VBELN = likp-vbeln

      I_COMMIT_WORK = 'X'

      I_BNAME = SY-UNAME

      IT_DELIT = it_delit

      IMPORTING

      E_TANUM = lv_tanum

      E_TEILK = lv_teilk

      EXCEPTIONS

      FOREIGN_LOCK = 1

      DN_COMPLETED = 2

      PARTIAL_DELIVERY_FORBIDDEN = 3

      XFELD_WRONG = 4

      LDEST_WRONG = 5

      DRUKZ_WRONG = 6

      DN_WRONG = 7

      SQUIT_FORBIDDEN = 8

      NO_TO_CREATED = 9

      TEILK_WRONG = 10

      UPDATE_WITHOUT_COMMIT = 11

      NO_AUTHORITY = 12

      NO_PICKING_ALLOWED = 13

      DN_HU_NOT_CHOOSABLE = 14

      INPUT_ERROR = 15

      OTHERS = 16.

      BREAK-POINT.

      IF lv_tanum IS INITIAL.

      READ TABLE messtab WITH KEY msgtyp = 'E'.

      message_id = sy-msgid.

      message_number = sy-msgno.

      message_v1 = sy-msgv1.

      message_v2 = sy-msgv2.

      message_v3 = sy-msgv3.

      message_v4 = sy-msgv4.

      perform error_message_screen using '9999'

      message_id

      message_number

      message_v1

      message_v2

      message_v3

      message_v4.

      LEAVE TO SCREEN sy-dynnr.

      ELSE.

      COMMIT WORK AND WAIT.

      PERFORM confirm_to

      USING rm07m-lgnum lv_tanum wa_tlips-matnr wa_tlips-charg.

      ENDIF.

      ENDLOOP.

      LEAVE TO TRANSACTION 'ZOTUA'.

      ENDIF.

      this code creates a TO and this TO has several positions.

      what i want IS to create a TO from a delivery (LIKP-VBELN)and a Storage Unit Number (LEIN-LENUM).

      My problem is that although the TO gets created OK, it cantains several positions whereas i only want just the position containing my Storage Unit Number (LEIN-LENUM).

      Best regards.