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

pls debug this code

Former Member
0 Likes
988

the following piece of code is not giving any o/p. can any one debug the code and make it work..

code:

REPORT ZINVDUMP MESSAGE-ID 00.

  • $Workfile: $

  • $Archive: $

  • $Revision: $

  • $Date: $

  • Routine to export Invoice Numbers to text file for use by ICIS.

  • Designed for orders after posting into invoices.

  • Main Loop through vbrk (Billing: Header Data)

  • Based on a date range of inserts or updated to vbrk

  • Determines vbrk-vbeln (invoice Number)

  • Inner Loop through related vbfa (Sales Doc Flow)

  • Determines xvbfa-vbelv (Order Number) and doctype

*

  • Change log:

  • $Log: $

*

  • EdR 5-Nov-2002 added preceeding Document Type L:Debit Memo Request

*

  • edr 27-Nov-2001 Added Create Date and Create time and ChangeDate

*

  • Edr 30-Aug-2001 added B - Quotation as a valid

  • preceeding document VBFA-VBTYP_V

  • Corrected AUDAT and ERDAT where restriction

*

  • Edr 13-Jul-2001 removed default directory for non-NT4

  • set starting date back two days.

*

  • Edr 14-Dec-98 included include zauth001. "Author

*

  • Edr 10-28-97 Change vbfa if from: xvbfa-posnv = '000010'

  • to: xvbfa-vbeln <> oldvbeln

*

  • Edr 6-13-97

  • Removed Sales Office, Sales District, & Cust Group from text file

  • Added subsequent doc & preceding doc to text file

  • Modified Name of text file from invhdr.txt to invnum.txt

  • Added additional types for:

  • vbrk-vbtyp_n (subsequent doc) was just M & N

  • vbrk-vbtyp_v (preceding doc) was just C & G

  • C - Order G - Contract H - Return

  • K - CM Request M - Invoice N - Cancel Doc

  • O - Crdt Memo P - Dbt Memo S - CM Cancel

  • L - DM Request (added 5-Nov-2002)

*

  • Edr 5-7-97

  • Add Sales District and Customer Group based on related ShipTo.

  • Added parameters passed from INI file

*

*

TABLES: VBRK, " Billing Header Data

VBFA. " Sales Document Flow

DATA: LASTDATE LIKE SYST-DATUM,

MAXDATE LIKE SYST-DATUM,

STARTDATE LIKE SYST-DATUM,

STARTTIME LIKE SYST-UZEIT.

DATA: BEGIN OF INI_REC_IN,

LASTDATE LIKE SYST-DATUM,

MAXDATE LIKE SYST-DATUM,

DEBUGWRITE(2),

DEBUGLIMIT(8),

MSG(80),

END OF INI_REC_IN.

DATA: BEGIN OF INI_REC_OUT.

INCLUDE STRUCTURE INI_REC_IN.

DATA: END OF INI_REC_OUT.

DATA: FILE1(50) VALUE 'invnum.txt',

FILE2(50) VALUE 'invnum.ini',

CLIENT LIKE SYST-MANDT,

COUNTREC TYPE I VALUE 0, " counter of records to export

COUNTINV TYPE I VALUE 0, " count of invoices

DEBUGLIMIT TYPE I, "

DEBUGWRITE TYPE I , " detail level of debug writes

ORDRCURRINVC TYPE I, " Orders with current Invoice

CNTZEROORD TYPE I VALUE 0, " Num Invoice with 0 orders

CNTOVERONE TYPE I VALUE 0 , " Num Invoice with > 1 orders

CNTONLYONE TYPE I VALUE 0, " Num Invoice with 1 order

ORDER LIKE VBAK-VBELN, " order number (salesDoc no)

OLDVBELV LIKE VBFA-VBELV. " last order number

DATA: BEGIN OF XVBRK OCCURS 0.

INCLUDE STRUCTURE VBRK. DATA: END OF XVBRK.

DATA: BEGIN OF XVBFA OCCURS 0.

INCLUDE STRUCTURE VBFA. DATA: END OF XVBFA.

DATA: BEGIN OF HDR_REC,

SYSID LIKE SYST-SYSID, "box id

MANDT LIKE SYST-MANDT, "Client(03)

INVNO LIKE VBRK-VBELN, "Invoice Number

VBELN LIKE VBAK-VBELN, "Sales Order Nbr (10).

AUART LIKE VBAK-AUART, "Document type(4)

BSTNK LIKE VBAK-BSTNK, "Purchase order number(20)

VKBUR LIKE VBAK-VKBUR, "Sales office(4)

AUDAT LIKE VBAK-AUDAT, "Document date (08).

ERNAM LIKE VBAK-ERNAM, "Order Entry User (12).

NETWR(10), "Net Order Value (10).

WAERK LIKE VBAK-WAERK, "Document Currency (05).

VKORG LIKE VBAK-VKORG, "Sales Organization (04).

VTWEG LIKE VBAK-VTWEG, "Distribution Channel (02).

SPART LIKE VBAK-SPART, "Sales Division (02).

FKARA LIKE VBAK-FKARA, "Billing Type (04).

SUBSEQ LIKE VBFA-VBTYP_N, "subsequent doc

PRECED LIKE VBFA-VBTYP_V, "preceding doc

FILLER(1), "filler to avoid bcp error

ERDAT LIKE VBFA-ERDAT, " create date

ERZET LIKE VBFA-ERZET, " create time

AEDAT LIKE VBFA-AEDAT, " modified date

FILLR2(1), "filler to avoid bcp error

END OF HDR_REC.

DATA: SRVRPATH(40) .

*CONCATENATE '
' SYST-HOST '\export\bcpsap\Invoice\' INTO SRVRPATH. "<< Before move to QA (check with CBI BEFORE uncomment)

CONCATENATE '
' SYST-HOST '\export\bcpsap\' INTO SRVRPATH. "CAUTION FOR ECC5.0 TESTING ONLY!!!!!!!!!

CONCATENATE SRVRPATH FILE1 INTO FILE1.

CONCATENATE SRVRPATH FILE2 INTO FILE2.

INCLUDE ZAUTH001. "Authorization check NT9K904519

STARTDATE = SYST-DATUM.

STARTTIME = SYST-UZEIT.

MOVE SYST-MANDT TO CLIENT.

*if syst-sysid ne 'NT6' and syst-mandt eq '055'.

  • move '013' to client.

*endif.

*if syst-sysid eq 'NT4'.

  • move: 'c:/tmp/zdcm/invnum.txt' to file1,

  • 'c:/tmp/zdcm/invnum.ini' to file2.

*endif.

IF DEBUGWRITE GT 0.

WRITE : / ' Header Output file:', FILE1.

WRITE : / 'File with last export date:', FILE2.

ENDIF.

*BEIGN ECC5.O DEVK900351.

  • CHANGES MADE " ENCODING DEFAULT ADDED".

*OPEN DATASET FILE1 FOR OUTPUT IN TEXT MODE.

OPEN DATASET FILE1 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

*END OF DEVK900351.

IF SY-SUBRC <> 0.

WRITE: / 'error opening', FILE1, 'for output error:', SY-SUBRC.

EXIT.

ENDIF.

*CLOSE DATASET FILE1. "SREERAM

*OPEN DATASET FILE2 FOR INPUT IN TEXT MODE ENCODING DEFAULT. " SREERAM

*READ: DATASET FILE2 INTO INI_REC_IN.

*IF SY-SUBRC <> 0.

  • WRITE: / 'error opening', FILE2, 'for output error:', SY-SUBRC.

    • exit.

*ENDIF.

*

*INI_REC_OUT-MAXDATE = INI_REC_IN-MAXDATE.

*INI_REC_OUT-DEBUGWRITE = INI_REC_IN-DEBUGWRITE.

*INI_REC_OUT-DEBUGLIMIT = INI_REC_IN-DEBUGLIMIT.

*INI_REC_OUT-MAXDATE = '20451215'.

**ini_rec_out-debugwrite = '0'.

**ini_rec_out-debuglimit = '98765'.

*

*INI_REC_OUT-MSG =

  • 'File invnum.ini LastDate(8) MaxDate(8) Debugwrite(2) Limit(8) '.

*INI_REC_OUT-LASTDATE = SYST-DATUM - 2.

*BEIGN ECC5.O DEVK900351.

  • CHANGES MADE " ENCODING DEFAULT ADDED".

*OPEN DATASET FILE2 FOR OUTPUT IN TEXT MODE.

  • OPEN DATASET FILE2 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

OPEN DATASET FILE2 FOR INPUT IN TEXT MODE encoding DEFAULT. "SREERAM

READ: DATASET FILE2 INTO INI_REC_IN.

IF SY-SUBRC <> 0.

WRITE: / 'error opening', FILE2, 'for output error:', SY-SUBRC.

  • exit.

ENDIF.

INI_REC_OUT-MAXDATE = INI_REC_IN-MAXDATE.

INI_REC_OUT-DEBUGWRITE = INI_REC_IN-DEBUGWRITE.

INI_REC_OUT-DEBUGLIMIT = INI_REC_IN-DEBUGLIMIT.

INI_REC_OUT-MAXDATE = '20451215'.

*ini_rec_out-debugwrite = '0'.

*ini_rec_out-debuglimit = '98765'.

INI_REC_OUT-MSG =

'File invnum.ini LastDate(8) MaxDate(8) Debugwrite(2) Limit(8) '.

INI_REC_OUT-LASTDATE = SYST-DATUM - 2.

CLOSE DATASET FILE2. "SREERAM

*END OF DEVK900351.

*OPEN DATASET FILE2 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

OPEN DATASET FILE2 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

IF SY-SUBRC <> 0 AND SY-SUBRC <> 4.

WRITE: / 'error opening file2 for output error:', SY-SUBRC.

EXIT.

ENDIF.

TRANSFER INI_REC_OUT TO FILE2.

LASTDATE = INI_REC_IN-LASTDATE.

MAXDATE = INI_REC_IN-MAXDATE.

DEBUGWRITE = INI_REC_IN-DEBUGWRITE.

DEBUGLIMIT = INI_REC_IN-DEBUGLIMIT.

*CLOSE DATASET FILE2.

IF DEBUGWRITE GT 0.

WRITE : / ' Header Output file:', FILE1.

WRITE : / 'File with last export date:', FILE2.

WRITE: / 'Invoices created-modified from', LASTDATE,

'to', MAXDATE, 'will export'.

WRITE: / 'DebugLimit =', DEBUGLIMIT LEFT-JUSTIFIED

,' DebugWrite =', DEBUGWRITE LEFT-JUSTIFIED.

WRITE: AT /1(3) SYST-SYSID,

AT 8 SYST-MANDT, ' Program', SYST-REPID,

' Exported Client#', CLIENT,' host', SYST-HOST.

ENDIF.

REFRESH: XVBRK. CLEAR: XVBRK.

  • main loop through vbrk - load internal structure xvbrk

SELECT VBELN FKART FKTYP WAERK VKORG FKDAT ERNAM VTWEG FKART_RL

NETWR KUNRG KUNAG SPART XBLNR BSTNK_VF

INTO CORRESPONDING FIELDS OF VBRK FROM VBRK

WHERE: ( ( ERDAT GE LASTDATE AND ERDAT LE MAXDATE ) "create date

OR

( AEDAT GE LASTDATE AND AEDAT LE MAXDATE ) "changed on date

).

  • ( erdat ge lastdate or "create date

  • aedat ge lastdate ) and "changed on date

  • ( erdat le maxdate or aedat le maxdate )

MOVE VBRK TO XVBRK. APPEND XVBRK.

ENDSELECT.

LOOP AT XVBRK.

COUNTINV = COUNTINV + 1.

IF DEBUGWRITE GT 1.

WRITE: / COUNTINV,XVBRK-VBELN, XVBRK-FKDAT, XVBRK-ERNAM,

XVBRK-FKART.

ENDIF.

REFRESH XVBFA. CLEAR XVBFA.

SELECT VBELV POSNV VBTYP_N VBTYP_V ERDAT ERZET AEDAT

INTO CORRESPONDING FIELDS OF VBFA FROM VBFA

WHERE: VBELN = XVBRK-VBELN ORDER BY VBELV.

MOVE VBFA TO XVBFA. APPEND XVBFA.

ENDSELECT.

ORDER = ' '. ORDRCURRINVC = 0. OLDVBELV = 'xxx'.

  • OPEN DATASET FILE1 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

LOOP AT XVBFA.

IF XVBFA-VBELV <> OLDVBELV

  • C - Order G - Contract H - Return

  • K - CM Request M - Invoice N - Cancel Doc

  • O - Crdt Memo P - Dbt Memo S - CM Cancel

  • B - Quotation

  • btyp_n = subsequent document

AND ( XVBFA-VBTYP_N = 'C' OR XVBFA-VBTYP_N = 'G' OR

XVBFA-VBTYP_N = 'H' OR XVBFA-VBTYP_N = 'K' OR

XVBFA-VBTYP_N = 'M' OR XVBFA-VBTYP_N = 'N' OR

XVBFA-VBTYP_N = 'O' OR XVBFA-VBTYP_N = 'P' OR

XVBFA-VBTYP_N = 'S' )

  • vbtyp_v = preceeding document

AND

( XVBFA-VBTYP_V = 'C' OR XVBFA-VBTYP_V = 'G' OR

XVBFA-VBTYP_V = 'H' OR XVBFA-VBTYP_V = 'K' OR

XVBFA-VBTYP_V = 'M' OR XVBFA-VBTYP_V = 'N' OR

XVBFA-VBTYP_V = 'O' OR XVBFA-VBTYP_V = 'P' OR

XVBFA-VBTYP_V = 'S' OR XVBFA-VBTYP_V = 'L' ).

.

ORDER = XVBFA-VBELV. OLDVBELV = XVBFA-VBELV.

PERFORM MOVE_INVC_DATA.

TRANSFER HDR_REC TO FILE1.

ORDRCURRINVC = ORDRCURRINVC + 1.

IF DEBUGWRITE GT 1. WRITE: XVBFA-VBELV. ENDIF.

ENDIF.

ENDLOOP.

IF ORDRCURRINVC EQ 0. CNTZEROORD = CNTZEROORD + 1.

ORDER = ' '.

PERFORM MOVE_INVC_DATA.

TRANSFER HDR_REC TO FILE1.

ENDIF.

IF ORDRCURRINVC EQ 1. CNTONLYONE = CNTONLYONE + 1. ENDIF.

IF ORDRCURRINVC GT 1. CNTOVERONE = CNTOVERONE + 1. ENDIF.

IF COUNTINV GE DEBUGLIMIT. EXIT. ENDIF.

COMMIT WORK.

ENDLOOP. " loop through xvbrk

*CLOSE DATASET FILE1.

*

  • Get Quote into Order/Contract Numbers

*

REFRESH XVBFA. CLEAR XVBFA. REFRESH: XVBRK. CLEAR: XVBRK.

SELECT VBELV VBELN POSNV ERDAT VBTYP_N VBTYP_V ERDAT ERZET AEDAT

INTO CORRESPONDING FIELDS

OF VBFA FROM VBFA

WHERE: ( ( ERDAT GE LASTDATE AND ERDAT LE MAXDATE ) "create date

OR

( AEDAT GE LASTDATE AND AEDAT LE MAXDATE ) "changed on date

) AND VBTYP_V = 'B'

AND ( VBTYP_N = 'C' OR VBTYP_N = 'G' ).

MOVE VBFA TO XVBFA. APPEND XVBFA.

ENDSELECT.

ORDER = ' '. ORDRCURRINVC = 0. OLDVBELV = 'xxx'.

*OPEN DATASET FILE1 FOR INPUT IN TEXT MODE ENCODING DEFAULT.

LOOP AT XVBFA.

IF XVBFA-VBELV <> OLDVBELV.

ORDER = XVBFA-VBELV. OLDVBELV = XVBFA-VBELV.

PERFORM MOVE_QUOTE_DATA.

TRANSFER HDR_REC TO FILE1.

ORDRCURRINVC = ORDRCURRINVC + 1.

IF DEBUGWRITE GT 1. WRITE: XVBFA-VBELV. ENDIF.

ENDIF.

ENDLOOP.

  • Summary information

IF DEBUGWRITE GT 0.

WRITE: /, / 'Done - Started', STARTDATE, STARTTIME.

WRITE: / ' Finished', SYST-DATUM, SYST-UZEIT.

WRITE: / 'invoices', COUNTINV, ' one order', CNTONLYONE,

' > one order', CNTOVERONE.

ENDIF.

CLOSE DATASET FILE1.

******************************************************

      • S U B R O U T I N E S ****

******************************************************

FORM MOVE_INVC_DATA.

MOVE: SYST-SYSID TO HDR_REC-SYSID,

CLIENT TO HDR_REC-MANDT,

XVBRK-VBELN TO HDR_REC-INVNO,

ORDER TO HDR_REC-VBELN,

XVBRK-FKDAT TO HDR_REC-AUDAT,

XVBRK-FKART_RL TO HDR_REC-AUART, "Document type

XVBRK-BSTNK_VF TO HDR_REC-BSTNK, " PO number

XVBRK-ERNAM TO HDR_REC-ERNAM,

XVBRK-NETWR TO HDR_REC-NETWR,

XVBRK-WAERK TO HDR_REC-WAERK,

XVBRK-VKORG TO HDR_REC-VKORG, " Sales Organization

XVBRK-VTWEG TO HDR_REC-VTWEG, " Distribution channel

XVBRK-SPART TO HDR_REC-SPART, " sales division

XVBRK-FKART TO HDR_REC-FKARA, " billing type

XVBFA-VBTYP_N TO HDR_REC-SUBSEQ, " subsequent doc

XVBFA-VBTYP_V TO HDR_REC-PRECED, " preceding doc

'Z' TO HDR_REC-FILLER,

XVBFA-ERDAT TO HDR_REC-ERDAT,

XVBFA-ERZET TO HDR_REC-ERZET,

XVBFA-AEDAT TO HDR_REC-AEDAT,

'Z' TO HDR_REC-FILLR2 .

.

ENDFORM.

FORM MOVE_QUOTE_DATA.

CLEAR HDR_REC.

MOVE: SYST-SYSID TO HDR_REC-SYSID,

CLIENT TO HDR_REC-MANDT,

XVBFA-VBELN TO HDR_REC-INVNO,

ORDER TO HDR_REC-VBELN,

XVBFA-ERDAT TO HDR_REC-AUDAT,

XVBFA-VBTYP_N TO HDR_REC-AUART, "Document type

  • xvbrk-bstnk_vf to hdr_rec-bstnk, " PO number

  • xvbrk-ernam to hdr_rec-ernam,

  • xvbrk-netwr to hdr_rec-netwr,

  • xvbrk-waerk to hdr_rec-waerk,

  • xvbrk-vkorg to hdr_rec-vkorg, " Sales Organization

  • xvbrk-vtweg to hdr_rec-vtweg, " Distribution channel

  • xvbrk-spart to hdr_rec-spart, " sales division

  • xvbrk-fkart to hdr_rec-fkara, " billing type

XVBFA-VBTYP_N TO HDR_REC-SUBSEQ, " subsequent doc

XVBFA-VBTYP_V TO HDR_REC-PRECED, " preceding doc

'Z' TO HDR_REC-FILLER,

XVBFA-ERDAT TO HDR_REC-ERDAT,

XVBFA-ERZET TO HDR_REC-ERZET,

XVBFA-AEDAT TO HDR_REC-AEDAT,

'Z' TO HDR_REC-FILLR2 .

ENDFORM.

7 REPLIES 7
Read only

Former Member
0 Likes
909

Hi,

Where is start-of-selection?

Regards,

Azaz Ali.

Read only

Former Member
0 Likes
909

Have you debugged this to see if you are selecting data or not?

Rob

Read only

0 Likes
909

the o/p i'm getting is

error opening
ord-sapdev\export\bcpsap\invnum.ini for output error: 4

Read only

0 Likes
909

I would guess that it doesn't like the two slashes at the beginning of the file name. I didn't see in the program where that is being populated. Can you tell me please?

Rob

Read only

0 Likes
909

it is in concatenate statement. the file file2 is present. there should be some mistake with open dataset and close dataset.

Read only

0 Likes
909

> the o/p i'm getting is

> error opening
ord-sapdev\export\bcpsap\invnum.ini

> for output error: 4

So, this mean your file path is not correct. Did you make sure that you are giving the correct filepath?

Read only

0 Likes
909

Yes - you:

CONCATENATE srvrpath file2 INTO file2.

But I don't see where srvpath is initialized.

Rob