SAP SD SOPORTE VENTAS

From SapWiki
Revision as of 19:15, 24 June 2026 by WikiSysop (talk | contribs)

Transacciones

VOFM, VOFN, VC/2

Documentación VOFM (http://saptechsolutions.com/pdf/InsideVOFM.pdf)

Ejemplo Elemento en Sapscript

copiar sapscript SD-SALES-SUMMARY, ventana MAIN copiar rutina form 011 a 903 en vofn, categoria LST1

/E LST1_903
/* 011 sustituida por 903 en todas partes
H2 Atraso en Pago,,,,: &v77komlst1-telement6(F*10R)&.-
H2 Bloqueo (sí/no),,,,: &v77komlst1-telement5&
L
H <B>Condiciones</>
H Condición de Pago:,,&v77komlst1-telement10&
H Atraso promedio (días):,,&v77komlst1-telement9&
H Seguro (sí/no):,,&v77komlst1-telement8&
H Categoría de Riesgo:,,&v77komlst1-telement7&
H
H <B>Historial de ventas (M$)</>
/E LST1_903_003
H2 Mes (-&v77komlst1-telement4&),,,,: &v77komlst1-telement1(F*10R)&.-
/E LST1_903_004
H
H2 Venta últimos 12 meses,,,,: &v77komlst1-telement1(F*10R)&.-

en RV77U903 ... ... ...

MOVE knvv-spart TO ls_rvkusta1_pay_del_terms-spart.
APPEND ls_rvkusta1_pay_del_terms TO
wa_rvkusta1_cust-pay_del_terms.
ENDIF.
ELSE.
DATA ls_tvzbt TYPE tvzbt.
SELECT SINGLE * FROM tvzbt INTO ls_tvzbt
WHERE spras = sy-langu
AND zterm = knvv-zterm.
info_prtlines_lst1_init.
WRITE: 'Condiciones de entrega y pago' TO v77komlst1-tline1,
* 1. line
'Incoterms' TO v77komlst1-telement1(19),
* 2. line
'Condición de pago' TO v77komlst1-telement2(19).
WRITE ls_tvzbt-vtext TO v77komlst1-telement10.
DATA lt_lineitems TYPE TABLE OF bapi3007_2.
DATA ls_lineitems LIKE LINE OF lt_lineitems.
DATA ld_amount LIKE ls_lineitems-lc_amount.
DATA ld_tlfns TYPE knb1-tlfns.
DATA ld_kraus TYPE knkk-kraus.
DATA ld_ctlpc TYPE knkk-ctlpc.
DATA ld_rtext TYPE t691t-rtext.
DATA ld_date TYPE d.
DATA ld_date_1 TYPE d.
DATA ls_s520 TYPE s520.
*Atraso promedio (días):
SELECT SINGLE tlfns INTO ld_tlfns FROM knb1
WHERE kunnr = knvv-kunnr
AND bukrs = tvko-bukrs.
WRITE ld_tlfns TO v77komlst1-telement9.

* Seguro (sí/no)
SELECT SINGLE kraus ctlpc INTO (ld_kraus,ld_ctlpc) FROM knkk
WHERE kunnr = knkk-kunnr
AND kkber = knkk-kkber.
CASE ld_kraus.
WHEN 'SPACE'.
v77komlst1-telement8 = 'NO'.
WHEN OTHERS.
v77komlst1-telement8 = 'SI'.
ENDCASE.
* Categoría de Riesgo
SELECT SINGLE rtext INTO ld_rtext FROM t691t
WHERE spras = sy-langu
AND ctlpc = ld_ctlpc
AND kkber = knkk-kkber
.
IF sy-subrc = 0.
WRITE ld_rtext TO v77komlst1-telement7.
ENDIF.
* Atraso en pago
CALL FUNCTION 'BAPI_AR_ACC_GETOPENITEMS'
EXPORTING
companycode = tvko-bukrs
customer = knvv-kunnr
keydate = sy-datum
TABLES
lineitems = lt_lineitems.
LOOP AT lt_lineitems INTO ls_lineitems.
ld_date = ls_lineitems-bline_date + ls_lineitems-dsct_days1.
CHECK ld_date < sy-datum.
IF ls_lineitems-db_cr_ind = 'H'.
ls_lineitems-lc_amount = ls_lineitems-lc_amount * -1.
ENDIF.
ADD ls_lineitems-lc_amount TO ld_amount.
ENDLOOP.
IF ld_amount <> 0.
ld_amount = ld_amount / 1000.
WRITE ld_amount TO v77komlst1-telement6 DECIMALS 0.
ELSE.
WRITE ld_amount TO v77komlst1-telement6 DECIMALS 0.
ENDIF.
CONDENSE v77komlst1-telement6 NO-GAPS.
* WRITE v77komlst1-tline3 TO v77komlst1-tline3(14) RIGHT-JUSTIFIED.
* bloqueo (si/no)
IF knkk-crblb <> space.
v77komlst1-telement5 = 'SI'.
ELSE.
v77komlst1-telement5 = 'NO'.
ENDIF.
info_sap_script_write.
* historial de ventas
DATA ld_m(7) TYPE c.
DATA ld_count TYPE c.
info_prtlines_lst1_init.
element = 'LST1_903_003'.
ld_count = '1'.
DO 4 TIMES.
* MES - 1
CALL FUNCTION 'HR_BR_ADD_MONTH_TO_DATE'
EXPORTING
dmm_datin = sy-datum
dmm_count = ld_count
dmm_oper = '-'
dmm_pos = space
IMPORTING
dmm_daout = ld_date.
IF ld_count = '1'.
ld_date_1 = ld_date .
ENDIF.
CONCATENATE ld_date+4(2) '.' ld_date(4) INTO ld_m.
CLEAR ls_s520.
SELECT SINGLE * INTO ls_s520 FROM s520
WHERE spmon = ld_date(6)
AND pkunag = knvv-kunnr
AND vkorg = knvv-vkorg
AND vtweg = knvv-vtweg
AND spart = knvv-spart.
IF sy-subrc = 0.
ls_s520-netwr = ls_s520-netwr / 1000. "Miles de $
WRITE ls_s520-netwr TO v77komlst1-telement1 CURRENCY ls_s520-stwae.
ELSE.
v77komlst1-telement1 = 0.
ENDIF.
CONDENSE v77komlst1-telement1 NO-GAPS.
* WRITE v77komlst1-telement6 TO v77komlst1-telement6(8) RIGHT-JUSTIFIED.
* v77komlst1-telement6+20 = ld_m.
v77komlst1-telement2 = ld_m.
v77komlst1-telement4 = ld_count.
info_sap_script_write.
ADD 1 TO ld_count.
ENDDO.
*Venta último año (M$):
info_prtlines_lst1_init.
element = 'LST1_903_004'.
CALL FUNCTION 'HR_BR_ADD_MONTH_TO_DATE'
EXPORTING
dmm_datin = ld_date_1
dmm_count = '12'
dmm_oper = '-'
dmm_pos = space
IMPORTING
dmm_daout = ld_date.
CLEAR ls_s520-netwr.
SELECT SUM( netwr ) INTO ls_s520-netwr FROM s520
WHERE spmon BETWEEN ld_date(6) AND ld_date_1(6)
AND pkunag = knvv-kunnr
AND vkorg = knvv-vkorg
AND vtweg = knvv-vtweg
AND spart = knvv-spart.
IF sy-subrc = 0.
ls_s520-netwr = ls_s520-netwr / 1000. "Miles de $
WRITE ls_s520-netwr TO v77komlst1-telement1 CURRENCY knvv-waers.
CONDENSE v77komlst1-telement1 NO-GAPS.
ELSE.
v77komlst1-telement1 = '0'.
ENDIF.
CONDENSE v77komlst1-telement1 NO-GAPS.
* WRITE v77komlst1-telement1 TO v77komlst1-telement1(14) RIGHT-JUSTIFIED.
* v77komlst1-telement1+20 = 'Año'.
* v77komlst1-telement1+24 = ld_date(4).
info_sap_script_write. "???
ENDIF.
ELSE. "XML-OUTPUT
...
...
...