cancel
Showing results for 
Search instead for 
Did you mean: 

SP01:Error 'Frontend unavailable' - during background job - Call Tr 'VF02'

Former Member
0 Kudos

Team,

I am getting the following error when scheduling a background job which contains Call Transaction 'VF02' . This job creates a spool. When I check SP01 I get the following in the SP01 'Status Text'

'Frontend unavailable'

Any help is appreciated.

Thanks

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

You can´t use local printing for batch processes, just create the spool request and print it out manually out of SP01.

Reson for not using fontend printer in batch process:

The system doesn´t know to which frontend workstation to print if the process is running in the background.

Or else one more way is use network printer for Batch / BGD processes.

Thanks & Regards,

Balaji.S

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

It appears that it is trying to use the frondend SAPgui for something, is there any downloading going on anyway during the job? Does it use any frontend controls, like ALV, or tree controls?

Regards,

Rich Heilman

Former Member
0 Kudos

No there are no frontend controls --- The program used to work fine - Recently I created a transaction code and transported the program to production.

REPORT Z_INVOICE_REPRINT_ZDLS .

*New pgm created by merging z_invoice_reprint and zsdship

*“ Created on:” - 10/2003

* “Description:” - Reprint invoices with Proof of Shipment

* “Keywords:” - Reprint invoices with Proof of Shipment

TABLES: VBRK, VBRP, VBAK, VBAP, LIKP, LIPS, VBPA,

BSID, BSAD, USR01, KNKK, NAST.

DATA: BEGIN OF ITAB OCCURS 1,

VBELN LIKE VBRK-VBELN,

END OF ITAB.

DATA: TEMPTAB LIKE ITAB OCCURS 1 WITH HEADER LINE.

DATA: LIN LIKE SY-TABIX,

DDAYS(3) TYPE N,

DUEDATE LIKE BSID-ZFBDT.

DATA: BDCDATA LIKE BDCDATA OCCURS 1 WITH HEADER LINE.

DATA POPUP_ANSWER(1).

SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME.

SELECT-OPTIONS: SINVOICE FOR VBRK-VBELN,

SDELIVER FOR LIKP-VBELN,

SORDER FOR VBAK-VBELN,

SBSTNK FOR VBRK-BSTNK_VF. "PO#

SELECTION-SCREEN END OF BLOCK BLK1.

SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME.

SELECT-OPTIONS: SGRUPP FOR KNKK-GRUPP,

SFKDAT FOR VBRK-FKDAT,

SDUEDATE FOR BSID-ZFBDT,

SCLRNGDT FOR BSAD-AUGDT, "Clearing Date

SSOLDTO FOR VBRK-KUNAG,

SPAYER FOR VBRK-KUNRG,

SBILLTO FOR VBPA-KUNNR,

SSHIPTO FOR VBPA-KUNNR,

SGSBER FOR VBRP-GSBER,

SLIFNR FOR LIKP-LIFNR.

SELECTION-SCREEN END OF BLOCK BLK2.

SELECTION-SCREEN BEGIN OF BLOCK BLK3 WITH FRAME.

PARAMETERS: PDAYS(3) TYPE N.

SELECTION-SCREEN END OF BLOCK BLK3.

SELECTION-SCREEN BEGIN OF BLOCK BLK4 WITH FRAME.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 10(10) TEXT-001.

PARAMETERS: PTAX AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN COMMENT 45(15) TEXT-002.

PARAMETERS: PNOTAX AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 10(10) TEXT-003.

PARAMETERS: PCREDITS AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN COMMENT 45(15) TEXT-004.

PARAMETERS: PDEBITS AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 10(10) TEXT-005.

PARAMETERS: POPEN AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN COMMENT 45(15) TEXT-006.

PARAMETERS: PCLOSED AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK BLK4.

SELECTION-SCREEN BEGIN OF BLOCK BLK5 WITH FRAME.

PARAMETERS: PLDEST LIKE NAST-LDEST.

SELECTION-SCREEN END OF BLOCK BLK5.

INITIALIZATION. "similar to PBO

SELECT SINGLE SPLD FROM USR01 INTO PLDEST

WHERE BNAME = SY-UNAME.

AT SELECTION-SCREEN.

IF SINVOICE IS INITIAL AND SDELIVER IS INITIAL AND SORDER IS INITIAL

AND SFKDAT IS INITIAL AND SSOLDTO IS INITIAL AND SGRUPP IS INITIAL.

MESSAGE E049(ZZ) WITH 'Please enter Invoice or Delivery or'

'Sales Order or Sold-to or Collector Code or'

'Invoice Date - in the selection screen'.

EXIT.

ENDIF.

"Clearing Date w/o customer will output many many invoices bidk907024

  • IF NOT sclrngdt IS INITIAL AND ssoldto IS INITIAL .

  • MESSAGE i999(zz) WITH 'select customers'.

  • ENDIF.

"Clearing Date w/o customer will output many many invoices

IF NOT SCLRNGDT IS INITIAL AND SSOLDTO IS INITIAL.

MESSAGE E999(ZZ) WITH 'You Have selected CLEARING DATE:Select Customer'.

ELSEIF NOT SCLRNGDT IS INITIAL AND PCLOSED <> 'X'.

MESSAGE E999(ZZ) WITH 'You Have selected CLEARING DATE:Select Closed'.

ELSEIF NOT SCLRNGDT IS INITIAL AND POPEN = 'X'.

MESSAGE E999(ZZ) WITH 'You Have selected CLEARING DATE:UNSelect Open'.

ENDIF.

START-OF-SELECTION.

IF POPEN <> 'X' AND PCLOSED <> 'X'.

MESSAGE I049(ZZ) WITH 'Please select Open or Closed Invoices'.

EXIT.

ENDIF.

IF PCREDITS <> 'X' AND PDEBITS <> 'X'.

MESSAGE I049(ZZ) WITH 'Please select Credit or Debit Invoices'.

EXIT.

ENDIF.

IF PTAX <> 'X' AND PNOTAX <> 'X'.

MESSAGE I049(ZZ) WITH 'Please select Taxable or'

'Non-taxable Invoices'.

EXIT.

ENDIF.

IF NOT SINVOICE IS INITIAL.

PERFORM GET_DATA_FROM_INVOICE.

ELSEIF NOT SDELIVER IS INITIAL.

PERFORM GET_DATA_FROM_DELIVERY.

ELSEIF NOT SORDER IS INITIAL.

PERFORM GET_DATA_FROM_ORDER.

ELSEIF NOT SFKDAT IS INITIAL.

PERFORM GET_DATA_FROM_FKDAT.

ELSEIF NOT SSOLDTO IS INITIAL.

PERFORM GET_DATA_FROM_SOLDTO.

ELSEIF NOT SGRUPP IS INITIAL.

PERFORM GET_DATA_FROM_GRUPP.

ELSE.

WRITE:/ 'Please enter Invoice or Delivery or',

'Sales Order or Sold-to or Collector Code or',

'Invoice Date - in the selection screen'.

EXIT.

ENDIF.

DESCRIBE TABLE ITAB LINES LIN.

IF LIN = 0.

WRITE:/ 'There are no invoices that match your selection-criteria'.

ELSE.

LIN = 0.

LOOP AT ITAB.

PERFORM FILL_BDCDATA USING: 'X' 'SAPMV60A' '0101',

' ' 'VBRK-VBELN' ITAB-VBELN,

' ' 'BDC_OKCODE' 'DRCK',

'X' 'SAPLVMSG' '0110',

' ' 'DNAST-KSCHL' 'ZRD1',

' ' 'BDC_OKCODE' 'STAR'.

SELECT SINGLE KSCHL FROM NAST INTO NAST-KSCHL

WHERE KAPPL = 'V3'

AND OBJKY = ITAB-VBELN

AND KSCHL = 'ZRD1'

AND VSTAT <> 0.

IF SY-SUBRC = 0.

PERFORM FILL_BDCDATA USING: 'X' 'SAPLSPO1' '0300',

' ' 'BDC_OKCODE' '=YES'.

ENDIF.

PERFORM FILL_BDCDATA USING: 'X' 'SAPLVMSG' '0100',

' ' 'NAST-LDEST' PLDEST,

*spool gathers all invoices under one request for similar characteristics

*. But I want to create separate request for each invoice (hence

  • one PROOF of Delivery for each invoice)

*Each invoice will be queued one after another respectively in SP01.

*fill invoice # in the dept. to create unique requests.

' ' 'NAST-TDDIVISION' ITAB-VBELN,"dept

' ' 'BDC_OKCODE' 'STAR'.

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

SUBMIT ZSDSHIP WITH INVOICE = ITAB-VBELN

TO SAP-SPOOL without spool dynpro

destination pldest "to avoid

*syntax error DESTINATION is added BIUpgrade-

  • IMMEDIATELY 'X'

IMMEDIATELY ' ' "

NEW LIST IDENTIFICATION 'X'

KEEP IN SPOOL 'X'

AND RETURN.

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

CALL TRANSACTION 'VF02' USING BDCDATA MODE 'N' UPDATE 'S'.

IF SY-SUBRC = 0.

WRITE:/5 'Invoice', ITAB-VBELN, 'has been printed'.

LIN = LIN + 1.

ELSE.

WRITE:/8 'Invoice', ITAB-VBELN, 'could not be printed'.

ENDIF.

REFRESH BDCDATA. CLEAR: BDCDATA, NAST.

ENDLOOP.

ULINE.

WRITE:/5 LIN, 'Invoices have been Printed on', PLDEST.

ENDIF.

*& Form GET_DATA_FROM_INVOICE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_FROM_INVOICE.

SELECT VBELN KUNAG MWSBK VBTYP

INTO (ITAB-VBELN, VBRK-KUNAG, VBRK-MWSBK, VBRK-VBTYP)

FROM VBRK

WHERE VBELN IN SINVOICE

AND KUNAG IN SSOLDTO

AND KUNRG IN SPAYER

AND BSTNK_VF IN SBSTNK

AND FKDAT IN SFKDAT.

IF PTAX = 'X' AND PNOTAX <> 'X'.

CHECK VBRK-MWSBK <> 0.

ELSEIF PTAX <> 'X' AND PNOTAX = 'X'.

CHECK VBRK-MWSBK = 0.

ENDIF.

IF PCREDITS = 'X' AND PDEBITS <> 'X'.

CHECK VBRK-VBTYP = 'O'.

ELSEIF PCREDITS <> 'X' AND PDEBITS = 'X'.

CHECK VBRK-VBTYP <> 'O'.

ENDIF.

IF NOT SGRUPP IS INITIAL.

SELECT SINGLE KUNNR INTO KNKK-KUNNR FROM KNKK

WHERE KUNNR = VBRK-KUNAG

AND KKBER = 'BIC'

AND GRUPP IN SGRUPP.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SDELIVER IS INITIAL OR

NOT SORDER IS INITIAL OR

NOT SGSBER IS INITIAL.

SELECT SINGLE VBELN INTO VBRP-VBELN FROM VBRP

WHERE VBELN = ITAB-VBELN

AND GSBER IN SGSBER

AND VGBEL IN SDELIVER

AND AUBEL IN SORDER.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SBILLTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'RE'

AND KUNNR IN SBILLTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SSHIPTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'WE'

AND KUNNR IN SSHIPTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SLIFNR IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'L3'

AND LIFNR IN SLIFNR.

CHECK SY-SUBRC = 0.

ENDIF.

IF POPEN = 'X' AND PCLOSED <> 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN <> 'X' AND PCLOSED = 'X'.

  • SELECT SINGLE belnr zfbdt zbd3t "Clearing Date

  • INTO (bsad-belnr, bsad-zfbdt, bsad-zbd3t)

SELECT SINGLE BELNR AUGDT ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-AUGDT, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN

AND AUGDT IN SCLRNGDT. "

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN = 'X' AND PCLOSED = 'X' AND NOT PDAYS IS INITIAL.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

IF SY-SUBRC = 0.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ELSE.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ENDIF.

APPEND ITAB. CLEAR ITAB.

ENDSELECT.

ENDFORM. " GET_DATA_FROM_INVOICE

&----


*& Form GET_DATA_FROM_DELIVERY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_FROM_DELIVERY.

SELECT VBELN INTO TEMPTAB-VBELN FROM VBFA

WHERE VBELV IN SDELIVER

AND VBTYP_N IN ('M', 'O', 'P')

AND VBTYP_V = 'J'.

APPEND TEMPTAB. CLEAR TEMPTAB.

ENDSELECT.

SORT TEMPTAB.

DELETE ADJACENT DUPLICATES FROM TEMPTAB.

LOOP AT TEMPTAB.

SELECT VBELN KUNAG MWSBK VBTYP

INTO (ITAB-VBELN, VBRK-KUNAG, VBRK-MWSBK, VBRK-VBTYP)

FROM VBRK

WHERE VBELN = TEMPTAB-VBELN

AND KUNAG IN SSOLDTO

AND KUNRG IN SPAYER

AND BSTNK_VF IN SBSTNK

AND FKDAT IN SFKDAT.

IF PTAX = 'X' AND PNOTAX <> 'X'.

CHECK VBRK-MWSBK <> 0.

ELSEIF PTAX <> 'X' AND PNOTAX = 'X'.

CHECK VBRK-MWSBK = 0.

ENDIF.

IF PCREDITS = 'X' AND PDEBITS <> 'X'.

CHECK VBRK-VBTYP = 'O'.

ELSEIF PCREDITS <> 'X' AND PDEBITS = 'X'.

CHECK VBRK-VBTYP <> 'O'.

ENDIF.

IF NOT SGRUPP IS INITIAL.

SELECT SINGLE KUNNR INTO KNKK-KUNNR FROM KNKK

WHERE KUNNR = VBRK-KUNAG

AND KKBER = 'BIC'

AND GRUPP IN SGRUPP.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SORDER IS INITIAL OR NOT SGSBER IS INITIAL.

SELECT SINGLE VBELN INTO VBRP-VBELN FROM VBRP

WHERE VBELN = ITAB-VBELN

AND GSBER IN SGSBER

AND AUBEL IN SORDER.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SBILLTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'RE'

AND KUNNR IN SBILLTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SSHIPTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'WE'

AND KUNNR IN SSHIPTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SLIFNR IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'L3'

AND LIFNR IN SLIFNR.

CHECK SY-SUBRC = 0.

ENDIF.

IF POPEN = 'X' AND PCLOSED <> 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN <> 'X' AND PCLOSED = 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN

AND AUGDT IN SCLRNGDT. "

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN = 'X' AND PCLOSED = 'X' AND NOT PDAYS IS INITIAL.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

IF SY-SUBRC = 0.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ELSE.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

DDAYS = SY-DATUM - ( BSAD-ZFBDT + BSAD-ZBD3T ).

CHECK DDAYS >= PDAYS.

ENDIF.

ENDIF.

APPEND ITAB. CLEAR ITAB.

ENDSELECT.

ENDLOOP.

ENDFORM. " GET_DATA_FROM_DELIVERY

&----


*& Form GET_DATA_FROM_ORDER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_FROM_ORDER.

SELECT VBELN INTO TEMPTAB-VBELN FROM VBFA

WHERE VBELV IN SORDER

AND VBTYP_N IN ('M', 'O', 'P')

AND VBTYP_V IN ('C', 'H').

APPEND TEMPTAB. CLEAR TEMPTAB.

ENDSELECT.

SORT TEMPTAB.

DELETE ADJACENT DUPLICATES FROM TEMPTAB.

LOOP AT TEMPTAB.

SELECT VBELN KUNAG MWSBK VBTYP

INTO (ITAB-VBELN, VBRK-KUNAG, VBRK-MWSBK, VBRK-VBTYP)

FROM VBRK

WHERE VBELN = TEMPTAB-VBELN

AND KUNAG IN SSOLDTO

AND KUNRG IN SPAYER

AND BSTNK_VF IN SBSTNK

AND FKDAT IN SFKDAT.

IF PTAX = 'X' AND PNOTAX <> 'X'.

CHECK VBRK-MWSBK <> 0.

ELSEIF PTAX <> 'X' AND PNOTAX = 'X'.

CHECK VBRK-MWSBK = 0.

ENDIF.

IF PCREDITS = 'X' AND PDEBITS <> 'X'.

CHECK VBRK-VBTYP = 'O'.

ELSEIF PCREDITS <> 'X' AND PDEBITS = 'X'.

CHECK VBRK-VBTYP <> 'O'.

ENDIF.

IF NOT SGRUPP IS INITIAL.

SELECT SINGLE KUNNR INTO KNKK-KUNNR FROM KNKK

WHERE KUNNR = VBRK-KUNAG

AND KKBER = 'BIC'

AND GRUPP IN SGRUPP.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SGSBER IS INITIAL.

SELECT SINGLE VBELN INTO VBRP-VBELN FROM VBRP

WHERE VBELN = ITAB-VBELN

AND GSBER IN SGSBER.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SBILLTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'RE'

AND KUNNR IN SBILLTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SSHIPTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'WE'

AND KUNNR IN SSHIPTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SLIFNR IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'L3'

AND LIFNR IN SLIFNR.

CHECK SY-SUBRC = 0.

ENDIF.

IF POPEN = 'X' AND PCLOSED <> 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN <> 'X' AND PCLOSED = 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN

AND AUGDT IN SCLRNGDT. "

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN = 'X' AND PCLOSED = 'X' AND NOT PDAYS IS INITIAL.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

IF SY-SUBRC = 0.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ELSE.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ENDIF.

APPEND ITAB. CLEAR ITAB.

ENDSELECT.

ENDLOOP.

ENDFORM. " GET_DATA_FROM_ORDER

&----


*& Form GET_DATA_FROM_SOLDTO

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_FROM_SOLDTO.

SELECT VBELN INTO VBAK-VBELN FROM VBAK

WHERE KUNNR IN SSOLDTO

AND BSTNK IN SBSTNK.

SELECT VBELN INTO TEMPTAB-VBELN FROM VBFA

WHERE VBELV = VBAK-VBELN

AND VBTYP_N IN ('M', 'O', 'P')

AND VBTYP_V IN ('C', 'H').

APPEND TEMPTAB. CLEAR TEMPTAB.

ENDSELECT.

ENDSELECT.

SORT TEMPTAB.

DELETE ADJACENT DUPLICATES FROM TEMPTAB.

LOOP AT TEMPTAB.

SELECT VBELN KUNAG MWSBK VBTYP

INTO (ITAB-VBELN, VBRK-KUNAG, VBRK-MWSBK, VBRK-VBTYP)

FROM VBRK

WHERE VBELN = TEMPTAB-VBELN

AND KUNRG IN SPAYER

AND FKDAT IN SFKDAT.

IF PTAX = 'X' AND PNOTAX <> 'X'.

CHECK VBRK-MWSBK <> 0.

ELSEIF PTAX <> 'X' AND PNOTAX = 'X'.

CHECK VBRK-MWSBK = 0.

ENDIF.

IF PCREDITS = 'X' AND PDEBITS <> 'X'.

CHECK VBRK-VBTYP = 'O'.

ELSEIF PCREDITS <> 'X' AND PDEBITS = 'X'.

CHECK VBRK-VBTYP <> 'O'.

ENDIF.

IF NOT SGRUPP IS INITIAL.

SELECT SINGLE KUNNR INTO KNKK-KUNNR FROM KNKK

WHERE KUNNR = VBRK-KUNAG

AND KKBER = 'BIC'

AND GRUPP IN SGRUPP.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SGSBER IS INITIAL.

SELECT SINGLE VBELN INTO VBRP-VBELN FROM VBRP

WHERE VBELN = ITAB-VBELN

AND GSBER IN SGSBER.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SBILLTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'RE'

AND KUNNR IN SBILLTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SSHIPTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'WE'

AND KUNNR IN SSHIPTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SLIFNR IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'L3'

AND LIFNR IN SLIFNR.

CHECK SY-SUBRC = 0.

ENDIF.

IF POPEN = 'X' AND PCLOSED <> 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN <> 'X' AND PCLOSED = 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN

AND AUGDT IN SCLRNGDT. "

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN = 'X' AND PCLOSED = 'X' AND NOT PDAYS IS INITIAL.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

IF SY-SUBRC = 0.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ELSE.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ENDIF.

APPEND ITAB. CLEAR ITAB.

ENDSELECT.

ENDLOOP.

ENDFORM. " GET_DATA_FROM_SOLDTO

&----


*& Form GET_DATA_FROM_GRUPP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_FROM_GRUPP.

SELECT KUNNR INTO KNKK-KUNNR FROM KNKK

WHERE GRUPP IN SGRUPP.

SELECT VBELN INTO VBAK-VBELN FROM VBAK

WHERE KUNNR = KNKK-KUNNR

AND BSTNK IN SBSTNK.

SELECT VBELN INTO TEMPTAB-VBELN FROM VBFA

WHERE VBELV = VBAK-VBELN

AND VBTYP_N IN ('M', 'O', 'P')

AND VBTYP_V IN ('C', 'H').

APPEND TEMPTAB. CLEAR TEMPTAB.

ENDSELECT.

ENDSELECT.

ENDSELECT.

SORT TEMPTAB.

DELETE ADJACENT DUPLICATES FROM TEMPTAB.

LOOP AT TEMPTAB.

SELECT VBELN KUNAG MWSBK VBTYP

INTO (ITAB-VBELN, VBRK-KUNAG, VBRK-MWSBK, VBRK-VBTYP)

FROM VBRK

WHERE VBELN = TEMPTAB-VBELN

AND KUNRG IN SPAYER

AND FKDAT IN SFKDAT.

IF PTAX = 'X' AND PNOTAX <> 'X'.

CHECK VBRK-MWSBK <> 0.

ELSEIF PTAX <> 'X' AND PNOTAX = 'X'.

CHECK VBRK-MWSBK = 0.

ENDIF.

IF PCREDITS = 'X' AND PDEBITS <> 'X'.

CHECK VBRK-VBTYP = 'O'.

ELSEIF PCREDITS <> 'X' AND PDEBITS = 'X'.

CHECK VBRK-VBTYP <> 'O'.

ENDIF.

IF NOT SGSBER IS INITIAL.

SELECT SINGLE VBELN INTO VBRP-VBELN FROM VBRP

WHERE VBELN = ITAB-VBELN

AND GSBER IN SGSBER.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SBILLTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'RE'

AND KUNNR IN SBILLTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SSHIPTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'WE'

AND KUNNR IN SSHIPTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SLIFNR IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'L3'

AND LIFNR IN SLIFNR.

CHECK SY-SUBRC = 0.

ENDIF.

IF POPEN = 'X' AND PCLOSED <> 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN <> 'X' AND PCLOSED = 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN

AND AUGDT IN SCLRNGDT. "

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN = 'X' AND PCLOSED = 'X' AND NOT PDAYS IS INITIAL.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

IF SY-SUBRC = 0.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ELSE.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

DDAYS = SY-DATUM - ( BSAD-ZFBDT + BSAD-ZBD3T ).

CHECK DDAYS >= PDAYS.

ENDIF.

ENDIF.

APPEND ITAB. CLEAR ITAB.

ENDSELECT.

ENDLOOP.

ENDFORM. " GET_DATA_FROM_GRUPP

&----


*& Form GET_DATA_FROM_FKDAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DATA_FROM_FKDAT.

SELECT VBELN KUNAG MWSBK VBTYP

INTO (ITAB-VBELN, VBRK-KUNAG, VBRK-MWSBK, VBRK-VBTYP)

FROM VBRK

WHERE FKDAT IN SFKDAT

AND KUNAG IN SSOLDTO

AND KUNRG IN SPAYER

AND BSTNK_VF IN SBSTNK.

IF PTAX = 'X' AND PNOTAX <> 'X'.

CHECK VBRK-MWSBK <> 0.

ELSEIF PTAX <> 'X' AND PNOTAX = 'X'.

CHECK VBRK-MWSBK = 0.

ENDIF.

IF PCREDITS = 'X' AND PDEBITS <> 'X'.

CHECK VBRK-VBTYP = 'O'.

ELSEIF PCREDITS <> 'X' AND PDEBITS = 'X'.

CHECK VBRK-VBTYP <> 'O'.

ENDIF.

IF NOT SGRUPP IS INITIAL.

SELECT SINGLE KUNNR INTO KNKK-KUNNR FROM KNKK

WHERE KUNNR = VBRK-KUNAG

AND KKBER = 'BIC'

AND GRUPP IN SGRUPP.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SGSBER IS INITIAL.

SELECT SINGLE VBELN INTO VBRP-VBELN FROM VBRP

WHERE VBELN = ITAB-VBELN

AND GSBER IN SGSBER.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SBILLTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'RE'

AND KUNNR IN SBILLTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SSHIPTO IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'WE'

AND KUNNR IN SSHIPTO.

CHECK SY-SUBRC = 0.

ENDIF.

IF NOT SLIFNR IS INITIAL.

SELECT SINGLE VBELN INTO VBPA-VBELN FROM VBPA

WHERE VBELN = ITAB-VBELN

AND POSNR = '000000'

AND PARVW = 'L3'

AND LIFNR IN SLIFNR.

CHECK SY-SUBRC = 0.

ENDIF.

IF POPEN = 'X' AND PCLOSED <> 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN <> 'X' AND PCLOSED = 'X'.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN

AND AUGDT IN SCLRNGDT. "BIDK907029

CHECK SY-SUBRC = 0.

IF NOT PDAYS IS INITIAL.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ELSEIF POPEN = 'X' AND PCLOSED = 'X' AND NOT PDAYS IS INITIAL.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSID-BELNR, BSID-ZFBDT, BSID-ZBD3T)

FROM BSID

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

IF SY-SUBRC = 0.

DUEDATE = BSID-ZFBDT + BSID-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ELSE.

SELECT SINGLE BELNR ZFBDT ZBD3T

INTO (BSAD-BELNR, BSAD-ZFBDT, BSAD-ZBD3T)

FROM BSAD

WHERE BUKRS = 'BIC'

AND KUNNR = VBRK-KUNAG

AND BELNR = ITAB-VBELN.

DUEDATE = BSAD-ZFBDT + BSAD-ZBD3T.

CHECK DUEDATE IN SDUEDATE.

DDAYS = SY-DATUM - DUEDATE.

CHECK DDAYS >= PDAYS.

ENDIF.

ENDIF.

APPEND ITAB. CLEAR ITAB.

ENDSELECT.

ENDFORM. " GET_DATA_FROM_FKDAT

&----


*& Form FILL_BDCDATA

&----


  • text

----


  • -->P_0408 text

  • -->P_0409 text

  • -->P_0410 text

----


FORM FILL_BDCDATA USING A B C.

IF A = 'X'.

BDCDATA-DYNBEGIN = A.

BDCDATA-PROGRAM = B.

BDCDATA-DYNPRO = C.

ELSE.

BDCDATA-FNAM = B.

BDCDATA-FVAL = C.

ENDIF.

APPEND BDCDATA. CLEAR BDCDATA.

ENDFORM. " FILL_BDCDATA