PDA

Ver la Versión Completa : Enhancement-section


Abaunus
21/04/10, 17:03:45
Hola amigos. Tengo una consulta con una ampliación:

Implementé una ampliación a una ENHANCEMENT-SECTION, la cual ya tiene creada una ampliación, de origen estándar. Al activar la mía, la estándar continúa asimismo activada. Mi consulta es: ¿va a pasar siempre por mi ampliación, al ser implementada más recientemente? ¿O existe algún chequeo o condición?

Les muestro el código:

ENHANCEMENT-SECTION VBRK_BEARBEITEN_02 SPOTS ES_SAPMV60A.
CALL FUNCTION 'RV_INVOICE_HEAD_MAINTAIN'
EXPORTING
VBRK_I = VBRK
FCODE_I = DA_FCODE
TABLES
XKOMFK = XKOMFK
XTHEAD = XTHEAD
XVBFS = XVBFS
XVBSS = XVBSS
XVBRK = XVBRK
XVBRP = XVBRP
XVBPA = XVBPA
XKOMV = XKOMV.
END-ENHANCEMENT-SECTION.
*$*$-Start: VBRK_BEARBEITEN_02------------------------------------------------------------------$*$*
ENHANCEMENT 57 OIC_SAPMV60A. "active version
CALL FUNCTION 'RV_INVOICE_HEAD_MAINTAIN'
EXPORTING
VBRK_I = VBRK
FCODE_I = DA_FCODE
TABLES
XKOMFK = XKOMFK
XTHEAD = XTHEAD
XVBFS = XVBFS
XVBSS = XVBSS
XVBRK = XVBRK
XVBRP = XVBRP
XVBPA = XVBPA
XKOMV = XKOMV
XOICQ7 = XOICQ7 "SO3K128097 AWH
XOICQ8 = XOICQ8 "SO3K128097 AWH
XOICQ9 = XOICQ9 "SO3K128097 AWH
XOIUQ9 = XOIUQ9. "SO5K000421 AWH
ENDENHANCEMENT.
ENHANCEMENT 73 Z_ES_SAPMV60A. "active version

* Mi código

ENDENHANCEMENT.


La implementación estándar al ENHANCEMENT-SECTION es ENHANCEMENT 57 OIC_SAPMV60A. "activa
Y la mía es ENHANCEMENT 73 Z_ES_SAPMV60A. "activa

En las pruebas que yo hice pasó siempre por mi ampliación, pero necesito corroborar que pase siempre por esa.


Desde ya, gracias a todos.
Saludos.

DCErick
16/01/12, 23:51:32
Hola,


¿va a pasar siempre por mi ampliación, al ser implementada más recientemente? ¿O existe algún chequeo o condición?


Tengo la misma duda.
Puedes compartirme si no es mucha molestia ¿Como quedo el tema en tu caso?

Abaunus
17/01/12, 12:10:38
Hola,
Tengo la misma duda.
Puedes compartirme si no es mucha molestia ¿Como quedo el tema en tu caso?
Hola Erick. Te comento: en mi caso, se ejecuta sólo mi ampliación, porque la otra standard implementada, depende de una "Industry Solution", por lo tanto, como esa IS no está implementada en la instalación SAP en la que estoy trabajando, no se va a ejecutar NADA que dependa de ella, ¿se entiende?

Igual, la duda persiste. Si hay varias implementaciones activas (sean standards o de cliente), de una ENHANCEMENT-SECTION, como es una "sección" de código (no un ENHANCEMENT-POINT), por lógica, debería pasar por una. Pero, ¿es así? Si es así, ¿es siempre la última? ¿O qué criterio se toma en cuenta?

Estaría bueno seguir con el tema!

Espero te sirva mi fragil respuesta.

Un abrazo!

DCErick
17/01/12, 14:44:23
Hola Abaunus, se entiende muy bien. Te comento que en mi caso me pidieron comentar el código del ENHANCEMENT-SECTION, no hay forma de tocar el código que sale en el ENHANCEMENT-SECTION pero igual tiene una implementación activa y esa si me deja meterle mano, aún no sé que sea mejor si modificar o reemplazar la implementación creo que en tu caso le diste crear implementación y por esta razón tienes 2 implementaciones activas....

Pero ahora me dejas con otra duda jeje, en que parte se le indica a una ampliación en que IS se debe de ejecutar:confused:


Igual, la duda persiste. Si hay varias implementaciones activas (sean standards o de cliente), de una ENHANCEMENT-SECTION, como es una "sección" de código (no un ENHANCEMENT-POINT), por lógica, debería pasar por una. Pero, ¿es así? Si es así, ¿es siempre la última? ¿O qué criterio se toma en cuenta?


¿No intentaste crear otra implementación para ver por cual pasa?
Igual y solo puedes tener una implementación de una ENH-SEC por IS.

Changos lo malo que yo no tengo que hacer ese cambio como para hacer las pruebas xD.

Abaunus
17/01/12, 16:06:08
Hola Abaunus, se entiende muy bien. Te comento que en mi caso me pidieron comentar el código del ENHANCEMENT-SECTION, no hay forma de tocar el código que sale en el ENHANCEMENT-SECTION pero igual tiene una implementación activa y esa si me deja meterle mano, aún no sé que sea mejor si modificar o reemplazar la implementación creo que en tu caso le diste crear implementación y por esta razón tienes 2 implementaciones activas....

Pero ahora me dejas con otra duda jeje, en que parte se le indica a una ampliación en que IS se debe de ejecutar:confused:



¿No intentaste crear otra implementación para ver por cual pasa?
Igual y solo puedes tener una implementación de una ENH-SEC por IS.

Changos lo malo que yo no tengo que hacer ese cambio como para hacer las pruebas xD.
A ver:
1) El código inicial de un ENHANCEMENT-SECTION, como sus implementaciones standards (activas o no), no se pueden tocar. Es como cualquier código standard. Lo que tenés que hacer en ese caso, si se requiere cambiar el código, es justamente crear una implementación de cliente. Y es aquí donde está la duda: en mi caso, siempre que las hice, termina pasando sólo por mi código (como sería lógico). Pero todavía no probé qué pasa si creo otra implementación luego.

2) Cómo activar una IS no sé, pero a qué IS corresponde algún objeto, lo ves por el paquete al que está asignado dicho objeto. Y las IS se activan en bloque, o sea, todos los objetos que le pertenecen.

DCErick
17/01/12, 18:22:02
mmmm Yo sé que no se debe tocar el fuente estandar, pero en este caso SAP no me limita como lo hace con sus demas objetos, no me pide clave de acceso o algo por el estilo, pero pues igual sigue siendo código estandar y no se debe tocar. Esperaré a que el ABAP termine el requerimiento y si recuerdo regreso a comentar que se hizo y como se comporta.

Abaunus
17/01/12, 18:52:18
mmmm Yo sé que no se debe tocar el fuente estandar, pero en este caso SAP no me limita como lo hace con sus demas objetos, no me pide clave de acceso o algo por el estilo, pero pues igual sigue siendo código estandar y no se debe tocar. Esperaré a que el ABAP termine el requerimiento y si recuerdo regreso a comentar que se hizo y como se comporta.
Sí sí, no te lo decía adocrinando, jaja. Digo, que pensaba que no te permitía modificarlo, como suele ser con lo standard. Qué raro que te lo permita sin clave. ¿Puedo saber el nombre de programa o include, para ver si a mí me lo permite?

Si te lo permite, no me haría tanto rollo. Si no tenés ganas de crear una implementación, comentá el standard y listo, meté tu código.

DCErick
17/01/12, 18:57:14
Sí sí, no te lo decía adocrinando, jaja. Digo, que pensaba que no te permitía modificarlo, como suele ser con lo standard. Qué raro que te lo permita sin clave. ¿Puedo saber el nombre de programa o include, para ver si a mí me lo permite?

Si te lo permite, no me haría tanto rollo. Si no tenés ganas de crear una implementación, comentá el standard y listo, meté tu código.

No hay drama :p .

El include es: LV60A003
Ampliación: ENHANCEMENT 2 OIG_SAPLV60A.

Abaunus
17/01/12, 19:01:11
No hay drama :p .

El include es: LV60A003
Ampliación: ENHANCEMENT 2 OIG_SAPLV60A.
Jaja, a mí también me permite modificarlo. Pero también depende de una IS... ¿Pasa por esa implementación cuando ejecutás el código? ¿O pasa por el código original ENHANCEMENT-SECTION bedingung_pruefen_003_02 SPOTS es_saplv60a ?

DCErick
17/01/12, 19:18:52
Jaja, a mí también me permite modificarlo. Pero también depende de una IS... ¿Pasa por esa implementación cuando ejecutás el código? ¿O pasa por el código original ENHANCEMENT-SECTION bedingung_pruefen_003_02 SPOTS es_saplv60a ?

Esto te lo debo, el programador aún no hace esa prueba y no sé cuando la haga. En cuanto tenga mas info la posteo.

Lo que si te puedo adelantar es que aquí se tiene activado ambos componentes ( SAP_APPL e IS-OIL ) a los cuales pertenecen la ENHANCEMENT-SECTION original y la ampliación respectivamente.

Abaunus
17/01/12, 19:53:24
Lo que si te puedo adelantar es que aquí se tiene activado ambos componentes ( SAP_APPL e IS-OIL ) a los cuales pertenecen la ENHANCEMENT-SECTION original y la ampliación respectivamente.
Aaaah, entonces calculo que debe pasar sólo por la implementación del ENHANCEMENT, y no por el código original.

DCErick
17/01/12, 20:46:03
Aaaah, entonces calculo que debe pasar sólo por la implementación del ENHANCEMENT, y no por el código original.

Bueno el programador ya intentó comentar el fuente de la ampliación estandar y le pide la clave de acceso al momento de darle grabar jajajaja.

Abaunus
18/01/12, 11:31:05
Bueno el programador ya intentó comentar el fuente de la ampliación estandar y le pide la clave de acceso al momento de darle grabar jajajaja.
Ja, algo raro había :D

DCErick
20/01/12, 16:52:37
Aaaah, entonces calculo que debe pasar sólo por la implementación del ENHANCEMENT, y no por el código original.

Bueno se implentó el ENHANCEMENT-SECTION (código original) y este dejó de pasar por el código original y solo pasa por la implementación nueva.

En cuanto a la otra implementación estandar pue dice el ABAP que no pasa por esa.
Conclusión: Seguimos con la misma duda :(.

Abaunus
20/01/12, 17:33:40
Bueno se implentó el ENHANCEMENT-SECTION (código original) y este dejó de pasar por el código original y solo pasa por la implementación nueva.

En cuanto a la otra implementación estandar pue dice el ABAP que no pasa por esa.
Conclusión: Seguimos con la misma duda :(.
Por lo que decís, no veo duda: pasa por la última implementación activa que se genere!

DCErick
20/01/12, 19:22:09
Por lo que decís, no veo duda: pasa por la última implementación activa que se genere!

mmmmm No pues parece que si... Pero entonces podemos decir que no importa el IS, solo pasa por la ultima que actives?

Recuerda que aqui si se tiene instalado el componente de la otra implementación.

Abaunus
20/01/12, 19:29:08
mmmmm No pues parece que si... Pero entonces podemos decir que no importa el IS, solo pasa por la ultima que actives?
Por lo que yo veo, el IS es una modificación o ampliación al standard base, y en muchos casos lo hace a través de ENHANCEMENTs... Si nosotros creamos una ampliación donde ya hay una dependiente de IS, es justamente porque queremos cambiar el SECTION del IS...

DCErick
20/01/12, 19:54:06
Por lo que yo veo, el IS es una modificación o ampliación al standard base, y en muchos casos lo hace a través de ENHANCEMENTs... Si nosotros creamos una ampliación donde ya hay una dependiente de IS, es justamente porque queremos cambiar el SECTION del IS...

Tiene sentido, solo que me dice el ABAP que nunca paso por la ampliacion estandar, me dice que puso unos break-point y que solo se detenía en el original.

Bueno, lo importante es que funciona jejej.

Abaunus
20/01/12, 20:04:25
Tiene sentido, solo que me dice el ABAP que nunca paso por la ampliacion estandar, me dice que puso unos break-point y que solo se detenía en el original.

Bueno, lo importante es que funciona jejej.
Claro. Habría que ver si no depende de otras cosas que pase por las implementaciones de ISs. Alguna parametrización de la solución, o algo así.