#1
|
|||
|
|||
Modificar registros de tabla MARC URGENTE!
Hola! bueno mi problema es el siguiente:
Necesito crear una funcion que tenga estos parametros de entrada (Werks, Plifz, Matnr), con esos datos debo llamar a alguna funcion estandar para que modifique 3 campos de la tabla MARC (PLIFZ, DISMM, BESKZ) en ese registro. Probé con la función 'BAPI_MATERIAL_SAVEDATA' pero solo modifica 2 y el PLIFZ no lo modifica! por las dudas dejo el codigo para que me ayuden. Gracias!! |
#2
|
|||
|
|||
adjunto el codigo, Saludos!
FUNCTION z_mm_actualizar_material. *"---------------------------------------------------------------------- *"*"Interfase local *" IMPORTING *" REFERENCE(I_PLIFZ) TYPE MARC-PLIFZ *" REFERENCE(I_MATNR) TYPE MARC-MATNR *" REFERENCE(I_WERKS) LIKE MARC-WERKS *" EXCEPTIONS *" WRONG_MATERIAL *"---------------------------------------------------------------------- DATA: wa_return TYPE bapiret2, wa_head TYPE bapimathead, wa_plant TYPE bapi_marc, wa_plantx TYPE bapi_marcx. DATA: t_ret TYPE TABLE OF bapi_matreturn2. wa_head-material = i_matnr. wa_plant-plant = i_werks. wa_plant-plnd_delry = i_plifz. wa_plant-mrp_type = 'ND'. wa_plant-proc_type = 'X'. wa_plantx-plant = i_werks. wa_plantx-plnd_delry = 'X'. wa_plantx-mrp_type = 'X'. wa_plantx-proc_type = 'X'. CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' EXPORTING headdata = wa_head * CLIENTDATA = * CLIENTDATAX = plantdata = wa_plant plantdatax = wa_plantx * FORECASTPARAMETERS = * FORECASTPARAMETERSX = * PLANNINGDATA = * PLANNINGDATAX = * STORAGELOCATIONDATA = * STORAGELOCATIONDATAX = * VALUATIONDATA = * VALUATIONDATAX = * WAREHOUSENUMBERDATA = * WAREHOUSENUMBERDATAX = * SALESDATA = * SALESDATAX = * STORAGETYPEDATA = * STORAGETYPEDATAX = * FLAG_ONLINE = ' ' * FLAG_CAD_CALL = ' ' * NO_DEQUEUE = ' ' IMPORTING return = wa_return TABLES * MATERIALDESCRIPTION = * UNITSOFMEASURE = * UNITSOFMEASUREX = * INTERNATIONALARTNOS = * MATERIALLONGTEXT = * TAXCLASSIFICATIONS = returnmessages = t_ret * PRTDATA = * PRTDATAX = * EXTENSIONIN = * EXTENSIONINX = . CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' * EXPORTING * WAIT = * IMPORTING * RETURN = . |
#3
|
|||
|
|||
Unos apuntes, si me permites:
1- si pones el código usando el tag "code" (el botón #) el código se leerá mejor 2- no te acostumbres a llamar al COMMIT a piñón, sin verificar que los datos se hayan pregrabado como dios manda... quizá te interesa controlar algún warning, o quizá los datos se vayan a grabar a pesar de un mensaje de error... hay que ir con mucho cuidadito y 3- hay campos de las vistas de materiales que NO se pueden actualizar en función de algunos otros (no soy capaz de recordar ningún ejemplo). Yo creo que "3" es el problema que tienes aquí. Dos posibilidades para verificarlo: 1- Haz un debug de la función y léete los mensajes que aparecen en el wa_return, o 2- Intenta hacer las modificaciones que estás probando a mano (transacción MM02) y mira qué errores/avisos te muestra (o si el campo que no se te actualiza aparece como sombreado). Sueter! (que es un jersey afortunado)
__________________
"Porque algunos sabemos que somos parte del problema"
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|