viernes, 25 de mayo de 2012

Fichero inicio del SAP GUI 7.20: ini file.

En la versión del SAP GUI 7.20 el fichero de inicio con las rutas de las conexiones y otras opciones de configuración para el SAP Logon está en
C:\Documents and Settings\<USUARIO_WINDOWS>\Datos de programa\SAP\Common el fichero es saplogon.ini.

jueves, 24 de mayo de 2012

Mensaje de error 0034: Se ha presentado el error de tiempo de ejcución MESSAGE_TYPE_X

Después de una copia de la base de datos de productivo a test he ejecutado la entrada de IDOCs de pedido ORDERS, con el siguiente error:

Se ha presentado el error de tiempo de ejcución MESSAGE_TYPE_X .    Nº mensaje: 00341Diagnóstico    Textos de errores para batch input
    Este texto no será visualizado.
    Sólo reserva-espacio
Actividades en el sistema    ninguna
Procedimiento    ninguno

Solución.

Después de algunas vueltas por google e internet y mirar las notas 734364 y 984177, que no he aplicado. He hablado otra vez con Laura, hemos mirado la ST22. Había un problema con la sociedad PA que nuestras consultoras Lidia y Carol lo han solucionado, ya que faltaba regenerar algunos datos de esta sociedad.

miércoles, 16 de mayo de 2012

Dígito de control del SSCC (EAN128) y otros EANs.


Estoy con temas de EDIs-IDOCs de entregas, el mensaje DESADV, en la otra parte esperan que les envíe el código seriado o matrícula del bulto, SSCC que ahora mismo no es una cosa que estemos gestionando desde SAP. Lo tendré que crear y validar el Dígito de control, que ahora mismo es lo que me preocupaba.

SSCC. Serial Shipping Container Code.

Me han explicado que el SSCC es un código seriado o matrícula del bulto. Permite diferenciar dos bultos exactamente iguales. Tiene el formato EPPPPPPPSSSSSSSSSD donde:
  • E (1) es el dígito de empaquetado o de extensión. Es un número del 0 al 9. Habitualmente se utiliza el "3". Parece que en SAP corresponde al elemento de datos EAN128_HU_ART.
  • PPPPPPP (7) es la raíz del punto operacional del proveedor.
  • SSSSSSSSS (9) es un número secuencial que empezaría por "000000001" y continuaría sin repetirse en ningún bulto en al menos 1 año.
  • D (1) es el dígito de control calculado a partir de los anteriores con el algoritmo de cálculo de los códigos EAN.

Cálculo del dígito de control en SAP.

Después de buscar un rato por SAP, he encontrado en el grupo de funciones LE_BARCODE el módulo LE_CHECK_DIGIT_CALCULATION. Le digo en IF_NUMBER_WO_CHECK_DIGIT = ‘CPPPPPPPSSSSSSSSS’, y dejo los valores por defecto para IF_CALC_METHOD = ‘A’ y IF_USER_CALC_METHOD y IF_ONLY_CHECKING los dejo vacíos.
Me devuelve en  EF_NUMBER_W_CHECK_DIGIT todo el SSCC, es decir ‘CPPPPPPPSSSSSSSSSD’.

Otros usos.

Parece que se puede usar para el cálculo del dígito de control de otros EANs, por ejemplo el del punto operacional que guardamos para un cliente en la XD01 (XD02, XD03), es decir concatenaríamos de la KNA1 los campos BBBNR (Núm.ubic.int.1) y BBSNR (Núm.ubic.int.2) y nos devolvería estos unido a BUBKZ (Díg.ctrl.).

Y como seguro que otro día lo busco y no lo encuentro y hoy, anoto el grupo de funciones EAN_GLN_FUNCS que relaciona puntos operacionales y clientes y vendedores. 

lunes, 30 de abril de 2012

La tabla de los usuarios Desarrolladores ABAP en SAP.

Es frecuente que los usuarios de desarrollo, programación o developer, como quieras llamarlos se hereden y se presten durante un proyecto SAP y a que al final no sepamos cuales había. O nos dediquemos todos a usar el mismo cuando tenemos varios.
Para encontrarlos nada mejor que consultar la tabla DEVACCESS con la SE16N o SE16 según el gusto del programador ABAP.

miércoles, 25 de abril de 2012

MIRO, validación ítem. ¿Customer-Function o BADI?

Objetivo:

Realizar una validación propia en los ítems de la MIRO. Primero he probado con una ampliación vía CMOD. Me he creado el proyecto ZMIRO con MM08R002 (Exit de usuario para verificaciones de tolerancia) y he implementado la EXIT_SAPLMR1M_001. Cada vez que he tocado una posición me ha ido pasando, y con un MESSAGE i015(zmsg) WITH i_ydrseg-rblgp w_tarifa w_tarifa_x w_bstme me ha salido el error. Hacer notar que por cada posición pasaba 3 veces.

Validar al grabar con BADI:


Pero al grabar sin tocar no pasaba por la validación. Después de buscar por internet la solución parece ir por aquí.
SE18 para buscar la BADI que nos interesa, en nuestro caso INVOICE_UPDATE.
SE19 para implementarla

Implementamos, y le damos nombre. 








Activamos 












Le damos a nueva (folio) 










Le damos nombre, podemos poner el mismo y el texto corto. El último no campo no hace falta.







Al volver a la selección de enhacements, seleccionamos el nuestro.





Vamos a la pestaña Interface:











Clic en CHAGE_AT_SAVE 




Y podemos implementar en la línea de la solución que habíamos encontrado en snc.sap.com.

method IF_EX_INVOICE_UPDATE~CHANGE_AT_SAVE.
  DATA: lv_name_xblnr(30) TYPE c VALUE '(SAPLMRMP)RBKPV'.
  FIELD-SYMBOLS: <fs_rbkpv> TYPE mrm_rbkpv.

  ASSIGN (lv_name_xblnr) TO <fs_rbkpv>.
  IF <fs_rbkpv> IS ASSIGNED.
    <fs_rbkpv>-xblnr = 'VALUE'.
  ENDIF.
endmethod.

Validar al grabar con Customer-Function.

Gracias a Laura que me ha dado otra posibilidad para no tener que implementar la BADI. Incluyendo en mi proyecto ZMIRO de la CMOD la LMR1M001 (Exit de usuario en la verificación de facturas logística). En EXIT_SAPLMRMP_010. Pasamos por ella cada vez que guardamos.












martes, 20 de marzo de 2012

Debuggar salida de IDOC's. WE15

En el caso de la salida no podemos debuggar desde la WE19. Así que con la ayuda de JBlade y Laura lo hemos resuelto con un ejempo de facturas.

En el caso de INVOIC debemos tener el mensaje creado en la factura.


Y en Datos adicionales la modalidad de envío debe ser 1 o 2.


A partir de este momento podemos poner los break-point donde queramos de la función IDOC_OUTPUT_INVOIC o de los user-exit’s (grupo de funciones XEDF). Para poder debuggar usamos la WE15 – Proc.salida desde NAST. Es el programa RSNAST00.


A partir de la segunda vez, debermos marcar Volver a enviar.

miércoles, 14 de marzo de 2012

Debuggar entrada de IDOC's. WE19

Para realizar pruebas y poder debuggar la entrada de un IDOC tenemos la transacción WE19 - Herramienta test.

Aquí podemos coger un idoc ya creado con o sin errores. Podemos modificar datos para volver a ejecutarlo y tener un idoc nuevo.  Menú IDOC->Test Proceso Entrada->Entrada Estándar.

También podemos hacerlo con Entrada módulo de funciones para verlo de forma visible o a partir del error Además podremos debuggar sólo si es de entrada.