miércoles, 24 de octubre de 2012

Error al añadir nuevo tipo de pedido en BAPI.


Problema: Heredo un programa que para crear pedidos desde un fichero usa BAPI_SALESORDER_CREATEFROMDAT2. Hasta este momento son pedidos con tipo de documento de ventas TA (VBAK-AUART) y funciona bien. Al añadir dos tipos nuevos me da el mensaje de error V1 761, como estoy en un cliente en inglés es algo así como "Unpermitted combination of business object &1 and sales doc. category &2". Y en &2 me va diciendo K o L según el nuevo tipo.
Solución: Leyendo la mejor respuesta en SCN llego a la conclusión que lo mejor es usar SD_SALESORDER_CREATE usando los parametros tal como los tenía llenos en la BAPI. 
Porque el problema está ahí, la BAPI sólo vale para el BUS BUS2032 con el que llama a SD_SALESORDER_CREATE. De hecho no he probado a no poner el BUS con la nueva función porque no parece obligatorio. El BUS depende del VBTYP de la TVAK, es la K y la L que me daba en el error.
Para saber el BUS que hay que poner uso la siguiente subrutina.

FORM f_obtain_bus USING p_auart TYPE auart
                  CHANGING p_bus TYPE nast-objtype.
*
  DATA: w_vbtyp LIKE  vbak-vbtyp.
*
  SELECT SINGLE vbtyp FROM  tvak CLIENT SPECIFIED
    INTO w_vbtyp
         WHERE  mandt  = sy-mandt
         AND    auart  = p_auart.

*
  CALL FUNCTION 'SD_OBJECT_TYPE_DETERMINE'
    EXPORTING
      i_document_type   = w_vbtyp
    IMPORTING
      e_business_object = p_bus.
*
ENDFORM. 



2 comentarios:

  1. siempre es gratificante buscar algo por google, y encontrar información en este blogg.

    sigue así y el mundo se postrará a tus pies.

    ResponderEliminar