MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Meses Con Field-symbols (foro/showthread.php?t=44042)

budista1 15/07/11 13:03:13

field-symbols sin resolver
 
Hola Eric,

aún no he resuelto esto, te paso una parte del código para que veas lo que quiero ahorrar. El form de enero funciona con el campo wkg001, el de febrero sería con wkg002 y así sucesivamente.
Cómo tendría que hacerlo con field-symbols ?

UN SALUDO Y GRACIAS DE ANTEMANO

Ivo



FORM fecha_mes .

* CLEAR p_mes.

* p_mes = ls_caufv-gltrp+4(2).

* CASE p_mes.
* WHEN c_enero.
* PERFORM enero.

* WHEN c_febrero.
* PERFORM febrero.

* WHEN c_marzo.
* PERFORM marzo.

* WHEN c_abril.
* PERFORM abril.

* WHEN c_mayo.
* PERFORM mayo.

* WHEN c_junio.
* PERFORM junio.

* WHEN c_julio.
* PERFORM julio.

* WHEN c_agosto.
* PERFORM agosto.

* WHEN c_septiembre.
* PERFORM septiembre.

* WHEN c_octubre.
* PERFORM octubre.

* WHEN c_noviembre.
* PERFORM noviembre.

* WHEN c_diciembre.
* PERFORM diciembre.

* WHEN OTHERS.

* ENDCASE.


*FORM enero .
*
*
** * HOURS COST:
* CLEAR v_hour_cost1.
* SELECT SINGLE wkg001 FROM coss INTO v_hour_cost1
* WHERE objnr = ls_caufv-objnr
* AND vrgng = 'RKL'.
*
* IF sy-subrc = 0.
* CLEAR ls_final1-hrr_cst.
* ls_final1-hrr_cst = v_hour_cost1.
* ENDIF.
*
** *Hours planed cost
**A
* CLEAR v_hour_pl_cost1.
* SELECT SINGLE wkg001 FROM coss INTO v_hour_pl_cost1
* WHERE objnr = ls_caufv-objnr
* AND vrgng = 'KPPS'.
*
* IF sy-subrc = 0.
* CLEAR ls_final1-hrp_vst.
*
* ls_final1-hrp_vst = v_hour_pl_cost1.
* ENDIF.
*
*
* CLEAR v_ext_serv_cost1.
**External service cost c
* SELECT SINGLE wkg001 FROM cosp INTO v_ext_serv_cost1
* WHERE objnr = ls_caufv-objnr
* AND vrgng = 'COIN'.
*
* IF sy-subrc = 0.
* CLEAR ls_final1-exr_cst.
*
* ls_final1-exr_cst = v_ext_serv_cost1.
*
* ENDIF.
*
*
**Service planed cost
* CLEAR v_serv_pla_cost1.
* SELECT SINGLE wkg001 FROM cosp INTO v_serv_pla_cost1
* WHERE objnr = ls_caufv-objnr
* AND vrgng = 'KPPP'.
*
* IF sy-subrc = 0.
* CLEAR ls_final1-exp_cst.
*
* ls_final1-exp_cst = v_serv_pla_cost1.
*
* ENDIF.
*
*
*ENDFORM. " ENERO

DCErick 15/07/11 13:44:07

Pues creo que sería:

budista1 19/07/11 15:07:06

Casi Me Funciona
 
Hola Eric,

muy bien lo del select single, ya veo que compila ,en cambio aquí no compila!
que pena! casi lo tenía!!

En (lv_campo) = l_wa-wkg016 dice que

lv_campo es desconocido.


Te paso el código, GRACIAS:


DATA lv_campo TYPE STRING.

p_mes = l_wa-gstrp+4(2).

CONCATENATE 'wkg0' l_wa-gstrp+4(2) INTO lv_campo.


UPDATE cosp CLIENT SPECIFIED SET (lv_campo) = l_wa-wkg016 muv001 = 'X' WHERE mandt = '001'

jtristan 20/07/11 07:11:55

Podrías probar a mandar toda la parte del set en variable. Es decir, no sólo el campo, si no el campo más el valor.

CONCATENATE 'wkg0' l_wa-gstrp+4(2) ' = ' l_wa-wkg016 ' muv001 = ''X'' '
INTO lv_campo.


UPDATE cosp CLIENT SPECIFIED SET (lv_campo) WHERE mandt = '001'

Un saludo.

budista1 20/07/11 14:45:25

merci pero..
 
Hola Tristan y Eric,

no acabo de rematar el código.

Ahora me salió un dump:

A dynamically specified column name is unknown.

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

El código es el siguiente:

CONCATENATE 'wkg0' l_wa-gstrp+4(2) INTO lv_campo.


CONCATENATE 'l_wa_ins_ef-' lv_campo INTO lv_campo2.

lv_campo2 = l_wa-wkg016.



UPDATE cosp CLIENT SPECIFIED SET (lv_campo2) muv001 = 'X' WHERE mandt = '001' AND lednr = '00' AND objnr = l_wa-objnr
AND gjahr = l_wa-budat(4) AND wrttp = '04' AND versn = '000' AND kstar = v_vksta AND vrgng = 'COIN'
AND beknz = 'S' AND twaer = 'EUR' AND perbl = '016'.


Peta en el Update


Un saludo abapero


Husos Horarios son GMT. La hora en este momento es 16:51:23.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web