on 02-25-2019 7:40 AM
I have written a code for SD flow that start from vbak,vbap,kna1 , mara,vbfa,likp,lips,vbrk,vbrp table .
Now I want to back track the SD flow for which I have to began my code writing from vbrp vbap,...vbap,vbak.
Or their is any other way?
This is the code I have written for front track.
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
vtweg TYPE vbak-vtweg,
spart TYPE vbak-spart,
kunnr TYPE vbak-kunnr,
END OF ty_vbak.
TYPES: BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
netwr TYPE vbap-netwr,
END OF ty_vbap.
TYPES: BEGIN OF ty_makt,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF ty_makt.
TYPES: BEGIN OF ty_kna1,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
adrnr TYPE kna1-adrnr,
telf1 TYPE kna1-telf1,
END OF ty_kna1.
TYPES: BEGIN OF ty_likp,
vbeln TYPE likp-vbeln,
erdat TYPE likp-erdat,
END OF ty_likp.
TYPES: BEGIN OF ty_lips,
vbeln TYPE lips-vbeln,
posnr TYPE lips-posnr,
lfimg TYPE lips-lfimg,
END OF ty_lips.
TYPES: BEGIN OF ty_mkpf,
mblnr TYPE mkpf-mblnr,
mjahr TYPE mkpf-mjahr,
END OF ty_mkpf.
TYPES: BEGIN OF ty_mseg,
mblnr TYPE mseg-mblnr,
mjahr TYPE mseg-mjahr,
zeile TYPE mseg-zeile,
menge TYPE mseg-menge,
END OF ty_mseg.
TYPES: BEGIN OF ty_vbrk,
vbeln TYPE vbrk-vbeln,
fkdat TYPE vbrk-fkdat,
END OF ty_vbrk.
TYPES: BEGIN OF ty_vbrp,
vbeln TYPE vbrp-vbeln,
posnr TYPE vbrp-posnr,
fkimg TYPE vbrp-fkimg,
matnr TYPE vbrp-matnr,
END OF ty_vbrp.
TYPES: BEGIN OF ty_vbfa,
vbelv TYPE vbfa-vbelv,
posnv TYPE vbfa-posnv,
vbeln TYPE vbfa-vbeln,
posnn TYPE vbfa-posnn,
vbtyp_n TYPE vbfa-vbtyp_n,
END OF ty_vbfa.
TYPES: BEGIN OF ty_final,
vbeln TYPE vbak-vbeln, "sales order
erdat TYPE vbak-erdat,
vtweg TYPE vbak-vtweg,
spart TYPE vbak-spart,
kunnr TYPE vbak-kunnr,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
netwr TYPE vbap-netwr,
maktx TYPE makt-maktx,
name1 TYPE kna1-name1,
adrnr TYPE kna1-adrnr,
telf1 TYPE kna1-telf1,
erdat_likp TYPE likp-erdat, "delivery
vbeln_lips TYPE lips-vbeln,
posnr_lips TYPE lips-posnr,
lfimg TYPE lips-lfimg,
mblnr TYPE mkpf-mblnr,
mjahr TYPE mkpf-mjahr,
zeile TYPE mseg-zeile,
menge TYPE mseg-menge,
vbeln_vbrk TYPE vbrk-vbeln, "invoice
fkdat TYPE vbrk-fkdat,
posnr_vbrp TYPE vbrp-posnr,
fkimg TYPE vbrp-fkimg,
matnr_vbrp TYPE vbrp-matnr,
END OF ty_final.
DATA: it_vbak TYPE STANDARD TABLE OF ty_vbak,
wa_vbak TYPE ty_vbak,
it_vbap TYPE STANDARD TABLE OF ty_vbap,
wa_vbap TYPE ty_vbap,
it_makt TYPE STANDARD TABLE OF ty_makt,
wa_makt TYPE ty_makt,
it_kna1 TYPE STANDARD TABLE OF ty_kna1,
wa_kna1 TYPE ty_kna1,
it_likp TYPE STANDARD TABLE OF ty_likp,
wa_likp TYPE ty_likp,
it_lips TYPE STANDARD TABLE OF ty_lips,
wa_lips TYPE ty_lips,
it_mkpf TYPE STANDARD TABLE OF ty_mkpf,
wa_mkpf TYPE ty_mkpf,
it_mseg TYPE STANDARD TABLE OF ty_mseg,
wa_mseg TYPE ty_mseg,
it_vbrk TYPE STANDARD TABLE OF ty_vbrk,
wa_vbrk TYPE ty_vbrk,
it_vbrp TYPE STANDARD TABLE OF ty_vbrp,
wa_vbrp TYPE ty_vbrp,
it_vbfa TYPE STANDARD TABLE OF ty_vbfa,
wa_vbfa TYPE ty_vbfa,
it_vbfa_del TYPE STANDARD TABLE OF ty_vbfa,
wa_vbfa_del TYPE ty_vbfa,
it_vbfa_pgi TYPE STANDARD TABLE OF ty_vbfa,
wa_vbfa_pgi TYPE ty_vbfa,
it_vbfa_inv TYPE STANDARD TABLE OF ty_vbfa,
wa_vbfa_inv TYPE ty_vbfa,
it_final TYPE STANDARD TABLE OF ty_final,
wa_final TYPE ty_final,
it_fieldcat TYPE slis_t_fieldcat_alv,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
vtweg TYPE vbak-vtweg,
spart TYPE vbak-spart,
kunnr TYPE vbak-kunnr,
END OF ty_vbak.
TYPES: BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
netwr TYPE vbap-netwr,
END OF ty_vbap.
TYPES: BEGIN OF ty_makt,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF ty_makt.
TYPES: BEGIN OF ty_kna1,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
adrnr TYPE kna1-adrnr,
telf1 TYPE kna1-telf1,
END OF ty_kna1.
TYPES: BEGIN OF ty_likp,
vbeln TYPE likp-vbeln,
erdat TYPE likp-erdat,
END OF ty_likp.
TYPES: BEGIN OF ty_lips,
vbeln TYPE lips-vbeln,
posnr TYPE lips-posnr,
lfimg TYPE lips-lfimg,
END OF ty_lips.
TYPES: BEGIN OF ty_mkpf,
mblnr TYPE mkpf-mblnr,
mjahr TYPE mkpf-mjahr,
END OF ty_mkpf.
TYPES: BEGIN OF ty_mseg,
mblnr TYPE mseg-mblnr,
mjahr TYPE mseg-mjahr,
zeile TYPE mseg-zeile,
menge TYPE mseg-menge,
END OF ty_mseg.
TYPES: BEGIN OF ty_vbrk,
vbeln TYPE vbrk-vbeln,
fkdat TYPE vbrk-fkdat,
END OF ty_vbrk.
TYPES: BEGIN OF ty_vbrp,
vbeln TYPE vbrp-vbeln,
posnr TYPE vbrp-posnr,
fkimg TYPE vbrp-fkimg,
matnr TYPE vbrp-matnr,
END OF ty_vbrp.
TYPES: BEGIN OF ty_vbfa,
vbelv TYPE vbfa-vbelv,
posnv TYPE vbfa-posnv,
vbeln TYPE vbfa-vbeln,
posnn TYPE vbfa-posnn,
vbtyp_n TYPE vbfa-vbtyp_n,
END OF ty_vbfa.
TYPES: BEGIN OF ty_final,
vbeln TYPE vbak-vbeln, "sales order
erdat TYPE vbak-erdat,
vtweg TYPE vbak-vtweg,
spart TYPE vbak-spart,
kunnr TYPE vbak-kunnr,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
netwr TYPE vbap-netwr,
maktx TYPE makt-maktx,
name1 TYPE kna1-name1,
adrnr TYPE kna1-adrnr,
telf1 TYPE kna1-telf1,
erdat_likp TYPE likp-erdat, "delivery
vbeln_lips TYPE lips-vbeln,
posnr_lips TYPE lips-posnr,
lfimg TYPE lips-lfimg,
mblnr TYPE mkpf-mblnr,
mjahr TYPE mkpf-mjahr,
zeile TYPE mseg-zeile,
menge TYPE mseg-menge,
vbeln_vbrk TYPE vbrk-vbeln, "invoice
fkdat TYPE vbrk-fkdat,
posnr_vbrp TYPE vbrp-posnr,
fkimg TYPE vbrp-fkimg,
matnr_vbrp TYPE vbrp-matnr,
I see a lot of declaration and then?
Which is the question?
If you already found the way to rebuild the flow from sales order down to invoice, I do not see why you cannot do the opposite: links between tables and objects are the same.
If you need any doubt, you can check FM SD_DOCUMENT_FLOW_GET to see how it works...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
it_vbfa_del[] = it_vbfa.
it_vbfa_pgi[] = it_vbfa.
it_vbfa_inv[] = it_vbfa.
DELETE it_vbfa_del WHERE NOT vbtyp_n = 'J'. " THIS CODE IS TO MOVE FRO M SALE ORDER TO BILLING THROW VBFA.
SELECT vbeln
erdat
FROM likp INTO TABLE it_likp
FOR ALL ENTRIES IN it_vbfa_del WHERE vbeln = it_vbfa_del-vbeln..
NOW I WANT TO MOVE FROM DELIVERY TO SALES ORDER WHAT SHOULD I WRITE IN CODE
WHERE VBELV // VBELN = IT_VBFA_DEL-VBELN // VBELV.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Sir just provide me code that how will move from delivery to SD using vbfa table .
I have used likp and lips in delivery
I have used vbak,vbap,kna1,make in sd
I have coded from SD to dev.
It_dev[]=it_vbfa
Select vbeln lfart from likp into table it_likp for all entries in it_del where vbeln= it_del-vbeln.
How will I move from likp to vbak using vBFA TABLE
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
SELECT vbeln
erdat
vtweg
spart
kunnr
FROM vbak INTO TABLE it_vbak WHERE vbeln IN s_vbeln AND erdat IN s_date AND kunnr IN s_kunnr.
IF sy-subrc = 0.
SORT it_vbak BY vbeln.
ENDIF.
IF it_vbak IS NOT INITIAL.
SELECT vbeln
posnr
matnr
netwr
FROM vbap INTO TABLE it_vbap
FOR ALL ENTRIES IN it_vbak WHERE vbeln = it_vbak-vbeln.
IF sy-subrc = 0.
SORT it_vbap BY vbeln posnr.
ENDIF.
IF it_vbap IS NOT INITIAL.
SELECT matnr
maktx
FROM makt INTO TABLE it_makt
FOR ALL ENTRIES IN it_vbap WHERE matnr = it_vbap-matnr AND spras = 'EN'.
IF sy-subrc = 0.
SORT it_makt BY matnr.
ENDIF.
SELECT kunnr
name1
adrnr
telf1
FROM kna1 INTO TABLE it_kna1
FOR ALL ENTRIES IN it_vbak WHERE kunnr = it_vbak-kunnr.
IF sy-subrc = 0.
SORT it_kna1 BY kunnr.
ENDIF.
SELECT vbelv
posnv
vbeln
posnn
vbtyp_n
FROM vbfa
INTO TABLE it_vbfa
FOR ALL ENTRIES IN it_vbak WHERE vbelv = it_vbak-vbeln.
IF sy-subrc = 0.
SORT it_vbfa BY vbeln.
ENDIF.
ENDIF.
ENDIF.
it_vbfa_del[] = it_vbfa.
it_vbfa_pgi[] = it_vbfa.
it_vbfa_inv[] = it_vbfa.
DELETE it_vbfa_del WHERE NOT vbtyp_n = 'J'.
DELETE it_vbfa_pgi WHERE NOT vbtyp_n = 'R'.
DELETE it_vbfa_inv WHERE NOT vbtyp_n = 'M'.
SORT it_vbfa_del BY vbeln.
SELECT vbeln
erdat
FROM likp INTO TABLE it_likp
FOR ALL ENTRIES IN it_vbfa_del WHERE vbeln = it_vbfa_del-vbeln.
IF sy-subrc = 0.
SORT it_likp BY vbeln.
ENDIF.
IF it_likp IS NOT INITIAL.
SELECT vbeln
posnr
lfimg
FROM lips INTO TABLE it_lips
FOR ALL ENTRIES IN it_likp WHERE vbeln = it_likp-vbeln.
ENDIF.
SELECT mblnr
mjahr
FROM mkpf INTO TABLE it_mkpf
FOR ALL ENTRIES IN it_vbfa_pgi WHERE mblnr = it_vbfa_pgi-vbeln.
IF sy-subrc = 0.
SORT it_mkpf BY mblnr.
ENDIF.
IF it_mkpf IS NOT INITIAL.
SELECT mblnr
mjahr
zeile
menge
FROM mseg INTO TABLE it_mseg
FOR ALL ENTRIES IN it_mkpf WHERE mblnr = it_mkpf-mblnr.
ENDIF.
SELECT vbeln
fkdat
FROM vbrk INTO TABLE it_vbrk
FOR ALL ENTRIES IN it_vbfa_inv WHERE vbeln = it_vbfa_inv-vbeln.
IF it_vbrk IS NOT INITIAL.
SELECT vbeln
posnr
fkimg
matnr
FROM vbrp INTO TABLE it_vbrp
FOR ALL ENTRIES IN it_vbrk WHERE vbeln = it_vbrk-vbeln.
ENDIF.
LOOP AT it_vbap INTO wa_vbap.
wa_final-posnr = wa_vbap-posnr.
wa_final-matnr = wa_vbap-matnr.
wa_final-netwr = wa_vbap-netwr.
READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln BINARY SEARCH.
IF sy-subrc = 0.
wa_final-vbeln = wa_vbak-vbeln.
wa_final-erdat = wa_vbak-erdat.
wa_final-vtweg = wa_vbak-vtweg.
wa_final-spart = wa_vbak-spart.
wa_final-kunnr = wa_vbak-kunnr.
ENDIF.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_vbap-matnr BINARY SEARCH.
IF sy-subrc = 0.
wa_final-maktx = wa_makt-maktx.
ENDIF.
READ TABLE it_kna1 INTO wa_kna1 WITH KEY kunnr = wa_vbak-kunnr BINARY SEARCH.
IF sy-subrc = 0.
wa_final-name1 = wa_kna1-name1.
wa_final-adrnr = wa_kna1-adrnr.
wa_final-telf1 = wa_kna1-telf1.
ENDIF.
READ TABLE it_vbfa_del INTO wa_vbfa_del WITH KEY vbelv = wa_vbap-vbeln posnv = wa_vbap-posnr BINARY SEARCH.
IF sy-subrc = 0.
ENDIF.
READ TABLE it_likp INTO wa_likp WITH KEY vbeln = wa_vbfa_del-vbeln BINARY SEARCH.
IF sy-subrc = 0.
wa_final-erdat_likp = wa_likp-erdat.
ENDIF.
READ TABLE it_lips INTO wa_lips WITH KEY vbeln = wa_likp-vbeln posnr = wa_vbfa_del-posnn BINARY SEARCH.
IF sy-subrc = 0.
wa_final-vbeln_lips = wa_lips-vbeln.
wa_final-posnr_lips = wa_lips-posnr.
wa_final-lfimg = wa_lips-lfimg.
ENDIF.
READ TABLE it_vbfa_pgi INTO wa_vbfa_pgi WITH KEY vbelv = wa_vbap-vbeln posnv = wa_vbap-posnr BINARY SEARCH.
IF sy-subrc = 0.
ENDIF.
READ TABLE it_mkpf INTO wa_mkpf WITH KEY mblnr = wa_vbfa_pgi-vbeln BINARY SEARCH.
IF sy-subrc = 0.
Sir I have written this code for SD flow from sales order to invoice.
But know I want to track from invoice to sale order(back track). For that I should write my code from invoice table vbrk ,vbrp,....to vbap,vbak?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I will be honest: I will not even try to read your code.
Try to format it correctly: SAP editor, Pretty Printer, copy, paste as plain text here and use "code button"
Seconded. If I can't read the code easily, I don't bother. It's for your own benefit.
User | Count |
---|---|
84 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.