Gestión de créditos en órdenes de mantenimiento

martes, 8 de octubre de 2013

El control del riesgo en el entorno actual sigue siendo uno de los grandes problemas de nuestras empresas. Y desde el punto de vista comercial SAP tiene un control evidente que ya tratamos en el artículo sobre Gestión del crédito en clientes. Sin embargo, la forma de atacar este problema desde el área de producción es diferente.


Si no tenemos una parametrización contra pedido debemos ir con mucho cuidado a la hora de planificar nuestros trabajos para clientes con riesgo de impago. En este ambiente siempre que recibamos el encargo de un cliente sin oferta previa estamos obligados a verifica su crédito previamente. Pero si no tenemos un departamento de créditos exclusivo o el inicio de los trabajos nos urge, entonces SAP nos permite verificar el riesgo de cliente automáticamente al crear una nueva orden. Este sistema no es perfecto ya que se basa en el coste del trabajo de la empresa en lugar del valor de la venta al cliente, aunque es válido para aquellos clientes que han agotado completamente su crédito con la empresa.

1. Parametrización en ventas

Antes de realizar nuestra parametrización sobre producción debemos tener lista nuestra parametrización en ventas. Esto es muy importante para poder continuar. Así que si no lo hemos hecho aún nos revisaremos el artículo sobre gestión del riesgo.

2. Parametrización en producción

Y ahora ya podemos pasar a producción. El customizing aquí es tan sencillo que asusta.

IMG: Mantenimiento y serv. al cliente / Gestión de mto y servicios / Órdenes de mto y servicios / Funciones y parametrizaciones de clases de orden / OIOL - Verif. límites de precio, cl. doc venta para órdenes de servicio
  • Al entrar en esta transacción debemos asegurarnos que introducimos un grupo de crédito de pedido (el mismo que tengamos parametrizado en nuestra parte de ventas)
  • También debemos obligar a los usuarios a que introduzcan un área de ventas asociada a toda orden. Esto lo conseguiremos introduciendo un valor el campo Verif. límite de crédito gestión CS. Yo pondré aquí un valor '3' para que SAP obligue a introducir el área de ventas tan pronto se introduzca el cliente en la orden.

3. BADI para la actualización inmediata de los costes planificados en la orden

Para poder realizar una verificación del crédito a partir del coste de la orden es necesario que SAP tenga actualizado el precio de coste del tra bajo (mano de obra y materiales) en la orden. Sin embargo, SAP explica en un apartado de su ayuda pública sobre estimación de costes planificados que esto no es así. El coste planificado de la orden sólo se calcula bien cuando se graba la orden, bien cuando el usuario fuerza este precálculo a través del menú.

Si nuestra intención es que el usuario verifique el crédito manualmente no hay que realizar este punto. De lo contrario, este punto es imprescindible.

IMG: Mantenimiento y serv. al cliente / Ampliaciones de sistema y transf. de datos / Add-ins empresariales / SE19 - Add-in empr.: modificar orden / COCR_CMX_BI_ORDER

  • Creamos una copia de la BADI COCR_CMX_BI_ORDER y la implementamos.
  • Nos dirigimos al método IF_EX_WORKORDER_UPDATE~BEFORE_UPDATE.
  • Introducimos el código ABAP que nos permite replicar la verificación del crédito tal y como lo haría SAP si el coste está previamente calculado.
  • Finalmente, grabamos y activamos nuestra ampliación.
A modo de ejemplo muestro el siguiente código ABAP:

Para que funcione correctamente antes debéis añadir las variables wa_header y wa_component en los atributos de vuestra clase.



METHOD if_ex_workorder_update~before_update.
*

** >>> Verificación del crédito en órdenes

  DATA:
    h_return TYPE sy-subrc,
    h_value  TYPE netwr_ak,
    h_vkorg  TYPE vkorg,
    h_vtweg  TYPE vtweg,
    h_spart  TYPE spart,
    l_objnr  TYPE j_objnr,
    l_tkf001 TYPE tkfxxx.

  CLEAR:
    h_return,
    h_value,
    h_vkorg,
    h_vtweg,
    h_spart,
    l_objnr,
    l_tkf001.

* Cabecera
  READ TABLE it_header INTO wa_header INDEX 1.

* Precio de cl. actividad
  LOOP AT it_operation INTO wa_operation.
    SELECT SINGLE objnr INTO l_objnr FROM cssl
      WHERE ( kokrs = wa_header-kokrs
        AND   kostl = wa_header-kostv
        AND   lstar = wa_operation-larnt
        AND   gjahr = wa_header-erdat(4) ).

    IF NOT l_objnr IS INITIAL.
      SELECT SINGLE tkf001 INTO l_tkf001 FROM cost
        WHERE ( objnr = l_objnr
          AND   gjahr = wa_header-erdat(4) ).
      h_value = h_value + ( wa_operation-arbei * l_tkf001 ).      "Importe
    ENDIF.
  ENDLOOP.

* Precio de los materiales
  LOOP AT it_component INTO wa_component.
    h_value = h_value + ( wa_component-bdmng * wa_component-gpreis ).
  ENDLOOP.

* Área de ventas
  SELECT SINGLE vkorg vtweg spart FROM tvta
    INTO (h_vkorg, h_vtweg, h_spart)
    WHERE vkorg = wa_header-bukrs.

* Verificación del crédito
  CALL FUNCTION 'PM_PARTNER_KREDITLIMIT'
    EXPORTING
      objnr             = wa_header-objnr
      vkorg             = h_vkorg
      vtweg             = h_vtweg
      spart             = h_spart
      value             = h_value
      cmgra             = '01'             "El que proceda según custo
      no_mess_out       = 'X'
      no_error_mess     = 'X'
    IMPORTING
      e_return          = h_return
    EXCEPTIONS
      no_check_possible = 1
      no_parvw_rg       = 2
      OTHERS            = 3.

  IF sy-subrc <> 0.
  ENDIF.

  IF NOT h_return IS INITIAL.
    MESSAGE 'Esta orden excede el límite de crédito.' TYPE 'I'.
  ENDIF.
*
ENDMETHOD.

El efecto de este código es parecido si desde nuestra orden de mantenimiento hiciésemos una verificación del crédito desde el menú Orden / Funciones / Verificación del límite de crédito. Esta verificación se realiza durante la grabación de nuestra orden y muestra un mensaje informativo al usuario.

4. Verificación del crédito

Antes de empezar debemos asegurarnos que nuestro cliente tiene actualizados correctamente los datos de gestión del crédito.

Finanzas / Gestión financiera / Deudores / Gestión de créditos / Datos maestros / FD32 - Modificar

Seguidamente podemos crear nuestra orden de mantenimiento.

Logística / Mantenimiento / Gestión de mantenimiento / Orden / IW31 - Crear en general
  • Introducimos los datos iniciales: tipo de orden y centro.
  • En la siguiente pantalla introducimos los datos que deseamos y nuestro cliente.
  • Al entrar el cliente, salta un pop-up solicitándonos la organización de ventas, canal y sector. Esto es resultado de la parametrización sobre el campo Verif. límite de crédito gestión CS.

  • Podemos pedir al usuario que haga una verificación manual a través del menú Orden / Funciones / Verificación del límite de crédito. Sin embargo, si el usuario no lleva a cabo esta operación no pasa nada porque al grabar entrará en funcionamiento nuestra BADI de forma completamente automática.



No hay comentarios:

Publicar un comentario