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

Read data from VBFA table

Former Member
0 Likes
3,171

hi gurus;

I want to read data from VBFA table nd pass its VBELV to VBAK table to get VBAK values, Iam using FM SD_DOCUMENT_FLOW_GET ND RV_ORDER_FLOW_INFORMATION, BUT i am not getting desire result. WHEN iam using FM SD_DOCUMENT_FLOW_GET, it will give result only for last row of data, its not considering body part, so tell me how to used this FM properly.

data: l_docflow type tdt_docflow.

data lw_docflow type tds_docflow OCCURS 1 WITH HEADER LINE .

SELECT VBELN KNUMV BUKRS KUNRG REGIO NETWR FKSTO FKDAT FKART INTO CORRESPONDING FIELDS OF TABLE T_VBRK

FROM VBRK WHERE BUKRS IN P_BUKRS AND FKDAT IN P_FKDAT AND VKORG IN P_VKORG AND REGIO = '07'

ORDER BY VBELN KNUMV.

SORT T_VBRK BY vbeln.

LOOP AT T_VBRK.

IF T_VBRK-FKART = 'F2' OR T_VBRK-FKART = 'YF2' OR T_VBRK-FKART = 'ZF2' OR

T_VBRK-FKART = 'ZG2' OR T_VBRK-FKART = 'ZL2' OR T_VBRK-FKART = 'YG2' OR T_VBRK-FKART = 'YL2' .

IF T_VBRK-FKSTO IS INITIAL.

CALL FUNCTION 'SD_DOCUMENT_FLOW_GET'

EXPORTING

IV_DOCNUM = T_VBRK-vbelN

  • IV_ITEMNUM =

  • IV_ALL_ITEMS =

  • IV_SELF_IF_EMPTY = ' '

IMPORTING

ET_DOCFLOW = l_docflow

.

LOOP AT l_docflow INTO lw_docflow .

IF lw_docflow-vbtyp_V = 'C' OR lw_docflow-vbtyp_V = 'K' OR lw_docflow-vbtyp_V = 'L' OR lw_docflow-vbtyp_V = 'E'.

T_VBFA-vbelv = lW_docflow-vbelv.

T_VBFA-VBELN = lW_docflow-VBELN.

T_VBFA-vbtyp_V = lW_docflow-vbtyp_V.

APPEND t_vbfa.

endif.

endloop.

ENDIF.

endloop.

loop at t_vbfa.

if t_vbfa-vbtyp_V = 'C' OR t_vbfa-vbtyp_V = 'K' OR t_vbfa-vbtyp_V = 'L' OR t_vbfa-vbtyp_V = 'E' .

SELECT VBELN BSTNK BSTDK FROM VBAK INTO CORRESPONDING FIELDS OF TABLE T_VBAK FOR ALL ENTRIES IN T_VBFA

WHERE VBELN = T_VBFA-VBELV .

endif.

ENDLOOP.

1 ACCEPTED SOLUTION
Read only

nabheetscn
SAP Champion
SAP Champion
0 Likes
2,062

Hello

Use the below function module

RV_ORDER_FLOW_INFORMATION pass the type as C and pass the number.You will get all the flow.

SELECT VBELN KNUMV BUKRS KUNRG REGIO NETWR FKSTO FKDAT FKART INTO CORRESPONDING FIELDS OF TABLE T_VBRK FROM VBRK WHERE BUKRS IN P_BUKRS AND FKDAT IN P_FKDAT AND VKORG IN P_VKORG AND REGIO = '07'

ORDER BY VBELN KNUMV.

SORT T_VBRK BY vbeln.

LOOP AT T_VBRK.

IF T_VBRK-FKART = 'F2' OR T_VBRK-FKART = 'YF2' OR T_VBRK-FKART = 'ZF2' OR

T_VBRK-FKART = 'ZG2' OR T_VBRK-FKART = 'ZL2' OR T_VBRK-FKART = 'YG2' OR T_VBRK-FKART = 'YL2' .

IF T_VBRK-FKSTO IS INITIAL.

i_vbco6-vbeln = t_vbrk-vbeln.

CALL FUNCTION 'RV_ORDER_FLOW_INFORMATION'

EXPORTING

  • AUFBEREITUNG = '2'

  • BELEGTYP = ' '

COMWA = i_vbco6

  • NACHFOLGER = 'X'

  • N_STUFEN = '50'

  • VORGAENGER = 'X'

  • V_STUFEN = '50'

  • IMPORTING

  • BELEGTYP_BACK =

TABLES

VBFA_TAB = t_vbfa

EXCEPTIONS

NO_VBFA = 1

NO_VBUK_FOUND = 2

OTHERS = 3

.

endif.

ENDIF.

endloop.

loop at t_vbfa.

if t_vbfa-vbtyp_V = 'C' OR t_vbfa-vbtyp_V = 'K' OR t_vbfa-vbtyp_V = 'L' OR t_vbfa-vbtyp_V = 'E' .

*clear t_vbfa.

SELECT VBELN BSTNK BSTDK FROM VBAK INTO CORRESPONDING FIELDS OF TABLE T_VBAK FOR ALL ENTRIES IN T_VBFA WHERE VBELN = T_VBFA-VBELV .

endif.

ENDLOOP.

In case of any more help is required do let me know

Regards,

Nabheet Madan

5 REPLIES 5
Read only

rvinod1982
Contributor
0 Likes
2,062

Hi,

When selecting the billing data from VBRK table also select POSNR(item no) from VBRP table by doing inner join.

Then pass VBELN and POSNR to the function module SD_DOCUMENT_FLOW_GET.

When appending internal table T_VBFA also append l_docflow-POSNN.

Then select data from VBAK AND VBAP table to header and item data.

Regards,

Vinod

Read only

nabheetscn
SAP Champion
SAP Champion
0 Likes
2,063

Hello

Use the below function module

RV_ORDER_FLOW_INFORMATION pass the type as C and pass the number.You will get all the flow.

SELECT VBELN KNUMV BUKRS KUNRG REGIO NETWR FKSTO FKDAT FKART INTO CORRESPONDING FIELDS OF TABLE T_VBRK FROM VBRK WHERE BUKRS IN P_BUKRS AND FKDAT IN P_FKDAT AND VKORG IN P_VKORG AND REGIO = '07'

ORDER BY VBELN KNUMV.

SORT T_VBRK BY vbeln.

LOOP AT T_VBRK.

IF T_VBRK-FKART = 'F2' OR T_VBRK-FKART = 'YF2' OR T_VBRK-FKART = 'ZF2' OR

T_VBRK-FKART = 'ZG2' OR T_VBRK-FKART = 'ZL2' OR T_VBRK-FKART = 'YG2' OR T_VBRK-FKART = 'YL2' .

IF T_VBRK-FKSTO IS INITIAL.

i_vbco6-vbeln = t_vbrk-vbeln.

CALL FUNCTION 'RV_ORDER_FLOW_INFORMATION'

EXPORTING

  • AUFBEREITUNG = '2'

  • BELEGTYP = ' '

COMWA = i_vbco6

  • NACHFOLGER = 'X'

  • N_STUFEN = '50'

  • VORGAENGER = 'X'

  • V_STUFEN = '50'

  • IMPORTING

  • BELEGTYP_BACK =

TABLES

VBFA_TAB = t_vbfa

EXCEPTIONS

NO_VBFA = 1

NO_VBUK_FOUND = 2

OTHERS = 3

.

endif.

ENDIF.

endloop.

loop at t_vbfa.

if t_vbfa-vbtyp_V = 'C' OR t_vbfa-vbtyp_V = 'K' OR t_vbfa-vbtyp_V = 'L' OR t_vbfa-vbtyp_V = 'E' .

*clear t_vbfa.

SELECT VBELN BSTNK BSTDK FROM VBAK INTO CORRESPONDING FIELDS OF TABLE T_VBAK FOR ALL ENTRIES IN T_VBFA WHERE VBELN = T_VBFA-VBELV .

endif.

ENDLOOP.

In case of any more help is required do let me know

Regards,

Nabheet Madan

Read only

0 Likes
2,062

WHEN Iam using this code it is showing type mismatch error.

Read only

0 Likes
2,062

hello

What you can do is where it is shwoing type mismatch error maniatain as the same type.

You only need to pass the order number thats it.

You can test in se37 just pass the sales order number and let the other default value remain as it.

You will get the whole flow detail.

Please let me know inc ase you need any help.

Please paste your code here.

Regards,

Nabheet Madan

Read only

0 Likes
2,062

hi guru,

when i want to print bstnk nd bstdk from vbak table, it will print only last value. iam using below code, so what i will chnage in the code to get full values.

LOOP AT T_VBRK.

READ TABLE T_VBFA WITH KEY VBELN = T_VBRK-VBELN.

READ TABLE T_KONV1 WITH KEY KNUMV = T_VBRK-KNUMV.

READ TABLE T_VBAK WITH KEY VBELN = T_VBFA-VBELV.

MOVE-CORRESPONDING T_VBRK TO T_FINAL.

MOVE-CORRESPONDING T_VBFA TO T_FINAL.

MOVE-CORRESPONDING T_VBAK TO T_FINAL.

MOVE-CORRESPONDING T_KONV1 TO T_FINAL.

T_FINAL-TOT = T_FINAL-KWERT + T_FINAL-Excise_duty + T_FINAL-Ecess + T_FINAL-HEcess .

T_FINAL-GROSS = T_FINAL-TOT + T_FINAL-Sales_Tax.

T_FINAL-KBETR = T_KONV-KBETR / 10.

APPEND T_FINAL.

ENDLOOP.