‎2007 May 24 5:27 PM
Hi friends,
i have to update the sales docuement flow with group delivery number (grp delivery number created using VG01 and entry can be seen in VBSS table).
I am trying to update using the FM 'RV_DOCUMENT_FLOW_UPDATE_U'.
Kindly share the knowledge if u have worked earlier in this type of scenario.
null
‎2007 May 24 6:15 PM
‎2007 Jun 06 9:51 PM
there are several FM s but for this type of requirement use badis
Message was edited by:
Durgaprasad Kare
‎2007 Jun 06 9:54 PM
there is a badi that i found for this requirement..
in this badi BADI_SD_DOCUMENTFLOW in the implementation enhancements tab select /SPE/BADI_SD_DOCFLOW implementation .inthis select the class and in the class select the method add subsequent docuement.
in this method create an enhancement spot (as this is done in ECC6) and write the following code
method IF_EX_BADI_SD_DOCUMENTFLOW~ADD_SUBSEQUENT_DOCUMENT.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1 )\TY:/SAPCEM/CL_IM_SD_DOCU_FLOW\IN:IF_EX_BADI_SD_DOCUMENTFLOW\ME:ADD_SUBSEQUENT_DOCUMENT\SE:BEGIN\EI D
$$-Start: (1 )----
$$
ENHANCEMENT 1 Z_ESCR53. "active version
*
check sy-uname = 'DKARE'.
DATA: gs_vbfa LIKE LINE OF f_vbfa_tab.
data lt_vbfa type table of vbfa.
FIELD-SYMBOLS: <gs_vbfa> LIKE LINE OF f_vbfa_tab.
Types declaration for group delivery data
TYPES : BEGIN OF ty_s_grpdel,
sammg TYPE sammg,
vbeln TYPE vbeln,
END OF ty_s_grpdel.
Sales data for the deliveries.
TYPES : BEGIN OF ty_s_sales,
vbeln type lips-vbeln,
vgbel TYPE lips-vgbel,
vgpos TYPE lips-vgpos,
END OF ty_s_sales.
sales order data
types : begin of ty_S_vbap,
vbeln type vbap-vbeln,
posnr type vbap-posnr,
end of ty_S_vbap.
variables declaration
DATA : gt_grpdel TYPE STANDARD TABLE OF ty_s_grpdel,
st_grpdel TYPE ty_s_grpdel,
gt_sales TYPE STANDARD TABLE OF ty_s_sales,
st_sales TYPE ty_s_sales,
lt_vbap type standard table of ty_S_vbap,
st_vbap type ty_S_vbap.
Constants declaration
CONSTANTS: gc_s VALUE 'S',
gc_2 VALUE '2',
gc_3 VALUE '3'.
READ TABLE f_vbfa_tab WITH KEY VBTYP_V = 'C' INTO gs_vbfa.
IF sy-subrc <> 0.
READ TABLE f_vbfa_tab WITH KEY VBTYP_V = 'J' INTO gs_vbfa.
IF sy-subrc <> 0.
READ TABLE f_vbfa_tab WITH KEY VBTYP_V = 'M' INTO gs_vbfa.
endif.
endif.
if gs_vbfa-VBTYP_V = 'C'.
Select vbeln
posnr
from vbap
into table lt_vbap
where vbeln = gs_vbfa-vbelV.
SELECT vbeln
vgbel
vgpos
FROM lips
INTO TABLE gt_sales
FOR ALL ENTRIES IN lt_vbap
WHERE VGBEL EQ lt_vbap-vbeln.
SELECT sammg vbeln
FROM vbss
INTO TABLE gt_grpdel
FOR ALL ENTRIES IN gt_sales
WHERE vbeln EQ gt_sales-vbeln.
elseif gs_vbfa-VBTYP_V = 'J'.
SELECT vbeln
vgbel
vgpos
FROM lips
INTO TABLE gt_sales
WHERE vbeln EQ gs_vbfa-vbelV.
SELECT sammg vbeln
FROM vbss
INTO TABLE gt_grpdel
FOR ALL ENTRIES IN gt_sales
WHERE vbeln EQ gt_sales-vbeln.
elseif gs_vbfa-VBTYP_V = 'M'.
SELECT vbeln
vgbel
vgpos
FROM vbrp
INTO TABLE gt_sales
WHERE vbeln EQ gs_vbfa-vbelV.
SELECT sammg vbeln
FROM vbss
INTO TABLE gt_grpdel
FOR ALL ENTRIES IN gt_sales
WHERE vbeln EQ gt_sales-vbeln.
endif.
break dkare.
data gv_tmp_index type sy-tabix.
clear gs_vbfa.
read table f_vbfa_tab into gs_vbfa
with key vbtyp_v = 'C'.
if sy-subrc = 0.
gv_tmp_index = sy-tabix.
loop at gt_grpdel into st_grpdel.
gv_tmp_index = gv_tmp_index + 1.
clear gs_vbfa.
gs_vbfa-vbelv = st_grpdel-vbeln.
gs_vbfa-vbtyp_n = 'J'.
gs_vbfa-vbeln = st_grpdel-sammg.
gs_vbfa-stufe = '02'.
gs_vbfa-vbtyp_v = 'J'.
INSERT gs_vbfa INTO f_vbfa_tab index gv_tmp_index.
endloop.
endif.
read table f_vbfa_tab into gs_vbfa
with key vbtyp_v = 'J'.
if sy-subrc = 0.
gv_tmp_index = sy-tabix.
loop at gt_grpdel into st_grpdel.
gv_tmp_index = gv_tmp_index .
clear gs_vbfa.
gs_vbfa-vbelv = st_grpdel-vbeln.
gs_vbfa-vbtyp_n = 'J'.
gs_vbfa-vbeln = st_grpdel-sammg.
gs_vbfa-stufe = '01'.
gs_vbfa-vbtyp_v = 'J'.
INSERT gs_vbfa INTO f_vbfa_tab index gv_tmp_index.
endloop.
endif.
read table f_vbfa_tab into gs_vbfa
with key vbtyp_v = 'M'.
if sy-subrc = 0.
loop at gt_grpdel into st_grpdel.
gv_tmp_index = gv_tmp_index .
clear gs_vbfa.
gs_vbfa-vbelv = st_grpdel-vbeln.
gs_vbfa-vbtyp_n = 'J'.
gs_vbfa-vbeln = st_grpdel-sammg.
gs_vbfa-stufe = '02'.
gs_vbfa-vbtyp_v = 'J'.
INSERT gs_vbfa INTO f_vbfa_tab index 1.
endloop.
endif.
ENDENHANCEMENT.
$$-End: (1 )----
$$
endmethod.