|
#1
|
|||
|
|||
thanks
Sensacional explicación VLOZANO , argumentando punto por punto.He seguido tus comentarios al milímetro. Tengo poca experencia en OO y nunca he montado una Bapi, pero por lo que indicas, es la mejor opción.
Ya te iré contando, un saludo agradecido. |
#2
|
|||
|
|||
No te dejes engañar por los nombres... una BAPI no es más que una función con un par de brazos más. Pero se utiliza igual que cualquier otra función: le das unos parámetros de entrada/salida, controlas sus excepciones, y comentas lo bien que ha ido con tus compañeros de trabajo (con los amigos no, que te llamarán "raro").
Eso sí, después acuérdate de llamar a la función BAPI_TRANSACTION_COMMIT o no habrá servido de nada (si quieres hacer pruebas con la BAPI, actualizando datos, tienes que ejecutar la función desde la SE37 usando la secuencia de test del menú: Módulo de función -> Test -> Secuencia de test)
__________________
"Porque algunos sabemos que somos parte del problema"
|
#3
|
|||
|
|||
programa bapi
Hola Vlozano, hola FORO,
hemos hecho un programa con tus indicaciones. Estoy viendo que se pueden actualizar los campos estandard pero aún no puedo conseguir resultados con los campos Z. REPORT ZBAPI. DATA: ITABLE TYPE TABLE OF BAPI_BUS2054_CHG WITH HEADER LINE. DATA: ITABLE1 TYPE TABLE OF BAPI_BUS2054_UPD WITH HEADER LINE. *Inicialitzar el procés de modificació CALL FUNCTION 'BAPI_PS_INITIALIZATION'. ITABLE-WBS_ELEMENT = 'S-AA-00005-P'. ITABLE-DESCRIPTION = 'Test A CAMBIAR'. APPEND ITABLE. ITABLE1-WBS_ELEMENT = 'S-AA-00005-P'. ITABLE1-DESCRIPTION = 'X'. APPEND ITABLE1. CALL FUNCTION 'BAPI_BUS2054_CHANGE_MULTI' EXPORTING i_project_definition = 'S-AA-00005' tables it_wbs_element = ITABLE it_update_wbs_element = ITABLE1 * ET_RETURN = * EXTENSIONIN = * EXTENSIONOUT = . CALL FUNCTION 'BAPI_PS_PRECOMMIT' . CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' * EXPORTING * WAIT = * IMPORTING * RETURN = Quizás la solución tenga que ver con estos parámetros: EXTENSIONIN LIKE BAPIPAREX EXTENSIONOUT LIKE BAPIPAREX Agradecería algún consejo/ código GRACIAS DE ANTEMANO! |
#4
|
|||
|
|||
Debo suponer que estás intentando actualizar un campo Z de la tabla PRPS... ahí ya no puedo echarte un cable. Sé que en el pasado me encontré con un problema parecido, y que tuve que tocar algunas cosillas para que la BAPI me reconociera esas ampliaciones de tabla.
Te remito a la fuente de mi conocimiento en ese momento: el help de SAP (help.sap.com). Ni siquiera recuerdo lo que utilicé para buscar, pero si tuviera que repetir usaria "BAPI extension" o algo así. Suerte.
__________________
"Porque algunos sabemos que somos parte del problema"
|
#5
|
|||
|
|||
es eso
Exactamente Vlozano,
tengo la incidencia que dices. Tendré que investigar en la Bapi. Parece que la Bapi te obliga a meter TODOS los campos Z, todo el churro de campos, por orden :-( Y si se hiciera un tratamiento aparte de los campos Z? (un update pero solo para los campos Z de la PRPS) |
#6
|
|||
|
|||
Lo del update de "sólo los campos Z" es algo que ya he oído en alguna parte. Y siempre se me erizan los pelos de la nuca.
Yo NO lo haría. Ni siquiera estando el 99% seguro de que nunca cascaría el SQL. Si tienes tiempo, inviértelo buscando cómo hacer que una BAPI trabaje con extensiones de tablas, porque te servirá en el futuro (ya puestos, cuando lo sepas nos lo explicas :P). Y si no lo tienes, intenta montar aunque sea un batch input lanzado desde un job con un usuario con autorización. Cualquier cosa antes de meterle mano a una tabla SAP mediante SQL. Nunca sabes cuándo va a llegar alguien detrás tuyo y va a decir: "mira, si actualiza PRPS-ZCAMPOCHORRA, yo también puedo actualizar PRPS-VERNR". Y se lía parda (supongo... no sé qué campo es ése :P)
__________________
"Porque algunos sabemos que somos parte del problema"
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|