SAP - NOTIFICATION

Páginas: 6 (1451 palabras) Publicado: 7 de abril de 2014
Procedimiento de Aprobación para Filas en Documentos de Marketing

Caso:
Se requiere definir un procedimiento para aprobar descuentos mayores otorgados a un artículo de una orden de venta (OV) de acuerdo al descuento que le corresponde a su grupo de artículo definido en las Listas de Precios Especiales (Inventory, Price List, Special Prices, Define Discount Groups)

Solución:
Lasolución pasa por detectar con algún mecanismo la diferencia entre el descuento definido para el grupo de artículos y el descuento que otorga el vendedor al preparar la OV, luego emplear este mecanismo de detección del descuento mayor para cada ítem de la OV para disparar un procedimiento de aprobación mediante un Consulta (query) de Usuario.

Primera parte: Evaluar la validez del descuento por cadalínea de la OV

1 Definir dos campos definidos por el usuario para los documentos de Marketing. Un campo definido a nivel de Cabecera (Title) y otro a nivel de detalle (Row):
● Marketing Documents > Title >
DsctItmT – Dsct. x Ítem – Alphanumeric (10)
● Marketing Documents > Row >
DsctItmR – Dsct. x Ítem – Alphanumeric (10)

NOTAS:

1 En el campo definido por el usuario para validar eldescuento a nivel de ítem (DsctItmR) se indicará un valor “VALIDO” o “INVALIDO” para indicar el estado del descuento otorgado por el vendedor.

2 La validez del documento se hará verificando la validez del descuento otorgado a las líneas de ítem (valor de DsctItmR), bastará que el descuento para una sola línea de ítem sea “INVALIDO” para que el validación de descuento por ítem a nivel decabecera del documento (DsctItmT) sea “INVALIDO” también.

3 Debido a que no se pueden referenciar desde la cabecera, a través de una consulta, los datos del detalle de un documento en SBO mientras estos datos no existan físicamente en la BD, y como el procedimiento de aprobación debe dispararse antes de que el documento sea guardado, entonces, se requiere almacenar los datos del detalle en una tablaauxiliar para poder evaluar las líneas de ítem a través de una consulta de usuario.

2 Crear estructura de datos auxiliar para almacenar los datos de la OV que necesitan ser evaluados, en este caso solo los datos para el detalle del documento.

● BD auxiliar:

-- Creación de BD auxiliar o temporal
IF EXISTS (SELECT *
FROM master..sysdatabases
WHEREname = 'SBOTemp')
DROP DATABASE SBOTemp
GO

CREATE DATABASE SBOTemp
GO

● Tabla auxiliar:

-- Creación de Tabla temporal para las líneas de Sales Order
USE SBOTemp
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name = 'SBO_RDR1_TMP' AND type = 'U')
DROP TABLE SBO_RDR1_TMP
GO
CREATE TABLE SBO_RDR1_TMP (
DocNum Integer, -- Número de Documento
DocDateDateTime, -- Fecha del documento
RowNum SmallInt, -- Número de línea
ItemCode Varchar(20), -- Código de artículo
Result Varchar(10) ) -- Resultado de validación
GO

3 Para evaluar la validez del descuento por cada línea de ítem y para almacenar esos datos en la tabla auxiliar se creará un store procedure en la BD de SBO con el siguiente código:

-- Para Validarel descuento x Línea de Sales Order
USE
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name = 'SP_SBO_VAL_DISCOUNT_SO_ITEM' AND type = 'P')
DROP PROCEDURE SP_SBO_VAL_DISCOUNT_SO_ITEM
GO
-- Store Procedure para validar el descuento por item de la Orden
CREATE PROCEDURE SP_SBO_VAL_DISCOUNT_SO_ITEM
@CardCode Varchar(20), -- $[$4.0.0] BP Code
@DocNum Integer , --$[$8.0.0] Document Number
@DocDate DateTime , -- $[$10.0.0] Posting Date
@RowNum SmallInt , -- $[$38.0.0] Row Number (order detail)
@ItemCode Varchar(20), -- $[$38.1.0] Item Code (order detail)
@ItemDsct Decimal(9,6) -- $[$38.15.0] % Discount (order detail)
AS
SET NOCOUNT ON
DECLARE @ItmGrpDsct Decimal(9,6) -- % Item Group Discount
DECLARE @Result Varchar(10) -- Valid o...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Sape
  • sapo
  • sapo
  • Que es SAP??
  • sapo
  • sape
  • Sapos
  • Sapo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS