Application Development and Automation 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: 
Read only

Adding Order number with document type ZDPC.

Former Member
0 Likes
903

Hi All,

This is Open Delivery Report and I have to add one column Order number to it, with document type ZDPC. As this report is very big, I got confused.

I am thinking the following changes to the report will work.

Please help me if it is right or do I need any more changes.

DATA: BEGIN OF ITAB_VBAK OCCURS 0,

VBELN LIKE VBAK-VBELN,

AUART LIKE VBAK-AUART,

BSTNK LIKE VBAK-BSTNK,

END OF ITAB_VBAK.

READ TABLE ITAB_VBAK WITH KEY VBELN = ITAB_LIPS-VBELN

AND AUART = ‘ZDPC’ BINARY SEARCH.

And adding VBAK-VBELN to write statement.

Thanks,

Veni.


TABLES: LIKP,
        LIPS,
        VBFA,
        VBRK,
        VBRP,
        VBAK,
        KNA1.
DATA: LIN TYPE I,
      TVGBEL LIKE LIPS-VGBEL.
* Internal Tables.
DATA: BEGIN OF ITAB_LIKP OCCURS 0,
      VBELN LIKE LIKP-VBELN,
      ERDAT LIKE LIKP-ERDAT,
      KUNNR LIKE LIKP-KUNNR,
      WADAT LIKE LIKP-WADAT_IST,
      END OF ITAB_LIKP.
DATA: BEGIN OF ITAB_LIPS OCCURS 0,
      VBELN LIKE LIPS-VBELN,
      POSNR LIKE LIPS-POSNR,
      MATNR LIKE LIPS-MATNR,
      WERKS LIKE LIPS-WERKS,
      LFIMG LIKE LIPS-LFIMG,
      ARKTX LIKE LIPS-ARKTX,
      VGBEL LIKE LIPS-VGBEL,
      END OF ITAB_LIPS.
DATA: BEGIN OF ITAB_VBFA OCCURS 0,
      VBELV LIKE VBFA-VBELV,
      POSNV LIKE VBFA-POSNV,
      VBELN LIKE VBFA-VBELN,
      POSNN LIKE VBFA-POSNN,
      END OF ITAB_VBFA.
DATA: BEGIN OF ITAB_VBFA1 OCCURS 0, "Neelima
      VBELV LIKE VBFA-VBELV,
      POSNV LIKE VBFA-POSNV,
      PICKNO LIKE VBFA-VBELN,
      ERDAT LIKE VBFA-ERDAT,
      END OF ITAB_VBFA1.
DATA: BEGIN OF ITAB_VBRK OCCURS 0,
      VBELN LIKE VBRK-VBELN,
      FKDAT LIKE VBRK-FKDAT,
      END OF ITAB_VBRK.
DATA: BEGIN OF ITAB_VBRP OCCURS 0,
      VBELN LIKE VBRP-VBELN,
      POSNR LIKE VBRP-POSNR,
      KZWI1 LIKE VBRP-KZWI1,
      NETWR LIKE VBRP-NETWR,
      END OF ITAB_VBRP.
DATA: BEGIN OF ITAB_VBAK OCCURS 0,
      VBELN LIKE VBAK-VBELN,
      AUART LIKE VBAK-AUART,
      BSTNK LIKE VBAK-BSTNK,
      END OF ITAB_VBAK.
DATA: BEGIN OF ITAB_KNA1 OCCURS 0,
      KUNNR LIKE KNA1-KUNNR,
      NAME1 LIKE KNA1-NAME1,
      END OF ITAB_KNA1.
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS: SVBELN FOR LIKP-VBELN,
                SERDAT FOR LIKP-ERDAT,
                SWADAT FOR LIKP-WADAT_IST,
                SKUNAG FOR LIKP-KUNAG,
                SBSTNK FOR VBAK-BSTNK,
                SWERKS FOR LIPS-WERKS,
                SMATNR FOR LIPS-MATNR.
SELECTION-SCREEN END OF BLOCK B1.

*----------------------------------------------------------------------*
* Event START-OF-SELECTION.
START-OF-SELECTION.
  SELECT VBELN ERDAT KUNNR WADAT_IST FROM LIKP INTO TABLE ITAB_LIKP
                          WHERE VBELN IN SVBELN
                            AND ERDAT IN SERDAT
                            AND WADAT_IST IN SWADAT
                            AND KUNAG IN SKUNAG.
  DESCRIBE TABLE ITAB_LIKP LINES LIN.
  IF LIN EQ 0.
    WRITE: 'NO DATA FOUND'.
  ELSE.
    SORT ITAB_LIKP BY VBELN.
    SELECT VBELN POSNR MATNR WERKS LFIMG ARKTX VGBEL
                              FROM LIPS INTO TABLE ITAB_LIPS
                              FOR ALL ENTRIES IN ITAB_LIKP
                              WHERE VBELN = ITAB_LIKP-VBELN
                                AND MATNR IN SMATNR
                                AND WERKS IN SWERKS.
    SORT ITAB_LIPS BY VBELN POSNR.

    SELECT KUNNR NAME1
    FROM KNA1 INTO TABLE ITAB_KNA1
    FOR ALL ENTRIES IN ITAB_LIKP
    WHERE KUNNR = ITAB_LIKP-KUNNR.

  ENDIF.
*----------------------------------------------------------------------*
* Checking for the customer PO.
  LOOP AT ITAB_LIPS.
    TVGBEL = ITAB_LIPS-VGBEL.
    AT NEW VBELN.
      SELECT SINGLE BSTNK FROM VBAK INTO VBAK-BSTNK
                                    WHERE VBELN = TVGBEL.
      ITAB_VBAK-VBELN = ITAB_LIPS-VBELN.
      ITAB_VBAK-BSTNK = VBAK-BSTNK.
      APPEND ITAB_VBAK.
      CLEAR ITAB_VBAK.
    ENDAT.
    CLEAR TVGBEL.
  ENDLOOP.
  IF SBSTNK NE ' '.
    LOOP AT ITAB_VBAK.
      IF ITAB_VBAK-BSTNK IN SBSTNK.
        CONTINUE.
      ELSE.
        DELETE ITAB_LIPS WHERE VBELN = ITAB_VBAK-VBELN.
        DELETE ITAB_VBAK.
      ENDIF.
    ENDLOOP.
  ENDIF.
  SORT ITAB_VBAK BY VBELN.




SELECT VBELV POSNV VBELN ERDAT FROM VBFA INTO TABLE ITAB_VBFA1
                                           FOR ALL ENTRIES IN ITAB_LIPS
                                          WHERE VBELV = ITAB_LIPS-VBELN
                                            AND POSNV = ITAB_LIPS-POSNR
                                                  AND VBTYP_N = 'Q'.

    SELECT VBELV POSNV VBELN POSNN FROM VBFA INTO TABLE ITAB_VBFA
                                FOR ALL ENTRIES IN ITAB_LIPS
                                WHERE VBELV = ITAB_LIPS-VBELN
                                AND POSNV = ITAB_LIPS-POSNR
                                AND ( VBTYP_N = 'M' OR VBTYP_N = 'O' ).

    DESCRIBE TABLE ITAB_VBFA LINES LIN.
    IF LIN NE 0.
      SELECT VBELN POSNR KZWI1 NETWR FROM VBRP INTO TABLE ITAB_VBRP
                              FOR ALL ENTRIES IN ITAB_VBFA
                              WHERE VBELN = ITAB_VBFA-VBELN
                                AND POSNR = ITAB_VBFA-POSNN.
      SELECT VBELN FKDAT FROM VBRK INTO TABLE ITAB_VBRK
                              FOR ALL ENTRIES IN ITAB_VBRP
                              WHERE VBELN = ITAB_VBRP-VBELN.
      SORT ITAB_VBRK BY VBELN FKDAT.
      DELETE ADJACENT DUPLICATES FROM ITAB_VBRK.
*----------------------------------------------------------------------*
      SORT ITAB_VBFA BY VBELV POSNV.
      ULINE /(289).

      LOOP AT ITAB_LIPS.
    READ TABLE ITAB_LIKP WITH KEY VBELN = ITAB_LIPS-VBELN BINARY SEARCH.
    READ TABLE ITAB_VBAK WITH KEY VBELN = ITAB_LIPS-VBELN BINARY SEARCH.
        READ TABLE ITAB_VBFA WITH KEY VBELV = ITAB_LIPS-VBELN
                                              POSNV = ITAB_LIPS-POSNR.
        READ TABLE ITAB_VBFA1 WITH KEY VBELV = ITAB_LIPS-VBELN
                                                POSNV = ITAB_LIPS-POSNR.

        READ TABLE ITAB_KNA1 WITH KEY KUNNR = ITAB_LIKP-KUNNR.

        IF SY-SUBRC EQ 0.
          READ TABLE ITAB_VBRP WITH KEY VBELN = ITAB_VBFA-VBELN
                                        POSNR = ITAB_VBFA-POSNN.
    READ TABLE ITAB_VBRK WITH KEY VBELN = ITAB_VBRP-VBELN BINARY SEARCH.
          WRITE: /01 SY-VLINE,
                  02 ITAB_LIPS-VBELN,
                  13 SY-VLINE,
                  14 ITAB_VBFA1-PICKNO,  
                  25 SY-VLINE,
                  26 ITAB_VBFA1-ERDAT,  
                  37 SY-VLINE,
                  38 ITAB_LIKP-ERDAT,
                  49 SY-VLINE,
                  50 ITAB_LIKP-KUNNR,
                  61 SY-VLINE,
                  62 ITAB_KNA1-NAME1,
                  98 SY-VLINE,
                  99 ITAB_LIPS-WERKS,
                  104 SY-VLINE,
                  105 ITAB_LIPS-POSNR,
                  112 SY-VLINE,
                  113 ITAB_LIPS-MATNR,
                  132 SY-VLINE,
                  133 ITAB_LIPS-ARKTX,
                  174 SY-VLINE,
                  175 ITAB_LIPS-LFIMG,
                  192 SY-VLINE,
                  193 ITAB_LIKP-WADAT,
                  204 SY-VLINE,
                  205 ITAB_VBRP-VBELN,
                  216 SY-VLINE,
                  217 ITAB_VBRK-FKDAT,
                  228 SY-VLINE,
                  229 ITAB_VBRP-KZWI1,
                  246 SY-VLINE,
                  247 ITAB_VBRP-NETWR,
                  267 SY-VLINE,
                  268 ITAB_VBAK-BSTNK,
                  289 SY-VLINE.


1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
713

Hi,

Move the transporting after the with key addition..

READ TABLE ITAB_VBAK INTO WA_BSTNK

WITH KEY VBELN = ITAB_LIPS-VGBEL

TRANSPORTING BSTNK.

  • WA_BSTNK-BSTNK will have the purchase order number.

READ TABLE ITAB_VBAK INTO WA_ORDER

WITH KEY VBELN = ITAB_LIPS-VGBEL

AUART = 'ZDPC'

TRANSPORTING VBELN.

Thanks,

Naren

5 REPLIES 5
Read only

Former Member
0 Likes
713

Hi,

I think you should use VGBEL instead of VBELN for the order number..Also in the read table you have to remove the AND

READ TABLE ITAB_VBAK WITH KEY VBELN = ITAB_LIPS-<b>VGBEL</b>

AUART = ‘ZDPC’ BINARY SEARCH.

Thanks,

Naren

Read only

0 Likes
713

Hi,

READ TABLE ITAB_VBAK WITH KEY VBELN = ITAB_LIPS-VBELN BINARY SEARCH.

This is getting ITAB_VBAK-BSTNK,

By changing the stmt

READ TABLE ITAB_VBAK WITH KEY VBELN = <b>ITAB_LIPS-VGBEL</b>

AUART = ‘ZDPC’ BINARY SEARCH.

and getting ITAB_VBAK-BSTNK and ITAB_VBAK-VBELN

will not effect right Naren.

Thanks

Veni.

Read only

Former Member
0 Likes
713

Hi,

In your code..You are storing delivery number in the field ITAB_VBAK-VBELN...

I am not sure why you are doing that...As I don't know your requirement..

If you are storing delivery number in vbeln then you have to use ITAB_LIPS-VBELN instead of ITAB_LIPS-VGBEL...

LOOP AT ITAB_LIPS.

TVGBEL = ITAB_LIPS-VGBEL.

AT NEW VBELN.

SELECT SINGLE BSTNK FROM VBAK INTO VBAK-BSTNK

WHERE VBELN = TVGBEL.

<b>ITAB_VBAK-VBELN = ITAB_LIPS-VBELN.</b>

ITAB_VBAK-BSTNK = VBAK-BSTNK.

APPEND ITAB_VBAK.

CLEAR ITAB_VBAK.

ENDAT.

CLEAR TVGBEL.

ENDLOOP.

To avoid this confusion..do the following..The changes are marked in BOLD..

<b>DATA WA_ORDER LIKE ITAB_VBAK.

DATA WA_BSTNK LIKE ITAB_VBAK.</b>

ITAB_VBAK-VBELN = <b>TVGBEL</b>.

ITAB_VBAK-BSTNK = VBAK-BSTNK.

APPEND ITAB_VBAK.

READ TABLE ITAB_VBAK INTO WA_BSTNK

TRANSPORTING BSTNK

WITH KEY VBELN = <b>ITAB_LIPS-VGBEL</b>

BINARY SEARCH.

  • WA_BSTNK-BSTNK will have the purchase order number.

READ TABLE ITAB_VBAK INTO WA_ORDER

TRANSPORTING VBELN

WITH KEY VBELN = <b>ITAB_LIPS-VGBEL</b>

<b>AUART = 'ZDPC'</b>.

  • WA_ORDER-VBELN will have the order number for ZDPC..

use the WA_BSTNK-BSTNK and WA_ORDER-VBELN to display the values..

Hope this helps..

Thanks,

Naren

Read only

0 Likes
713

Hi Naren,

I am getting syntax error saying 'No component exists with the name "WITH".'

at

READ TABLE ITAB_VBAK INTO WA_BSTNK

TRANSPORTING BSTNK

WITH KEY VBELN = ITAB_LIPS-VGBEL

BINARY SEARCH.

This is a open delivery report, but users wants to have order num with ordtype ZDPC along with delivery number.

Thank you.

Regards

Veni.

Read only

Former Member
0 Likes
714

Hi,

Move the transporting after the with key addition..

READ TABLE ITAB_VBAK INTO WA_BSTNK

WITH KEY VBELN = ITAB_LIPS-VGBEL

TRANSPORTING BSTNK.

  • WA_BSTNK-BSTNK will have the purchase order number.

READ TABLE ITAB_VBAK INTO WA_ORDER

WITH KEY VBELN = ITAB_LIPS-VGBEL

AUART = 'ZDPC'

TRANSPORTING VBELN.

Thanks,

Naren