// // 1 comentario

BaseEntry, BaseType y BaseLine

Consulta: 
Estoy queriendo realizar un circuito de documentos, por ejemplo:

Que no me permita emitir un pago, si no existe una factura, y no dejar cargar la factura si no están las entregas, y así hacia atrás…

Se me ocurrió, hacer una serie de autorizaciones en las cuales voy consultando el documento anterior (Base) y si no tiene algún campo (determinado por mi) completo, se emite el pedido de autorización.

Me pueden indicar como proceder? o si tienen algún material para leer al respecto?
BaseEntry, BaseType y BaseLine - Consultoria-SAP


BaseEntry, BaseType y BaseLine

Solución elegida

Para relacionar documentos, debes enlazar los campos de linea BaseEntry, BaseType y BaseLine del documento de destino hacia el documento base. Esos campos están en todos los documentos de marketing, en el "DETALLE o LINEAS". Ofertas, Pedidos, Facturas, Notas de credito y debito, Traslados.


Más información



1 comentario:

  1. Hola, si te es de utilidad yo hice este query para consultar los niveles de autorización de cada evento y en ese está relacionado el flujo de compras desde que se hace una solicitud hasta la factura.


    SELECT DISTINCT
    A.DocNum AS 'Solicitud de Compra', '>' as procede@, B.DocNum AS 'Oferta de Compra',
    (
    SELECT usr.u_name
    FROM ousr AS usr
    WHERE Aut1.UserSign = usr.USERID
    ) AS 'Solicita', Aut1d.CreateDate AS 'F.Solicita Aut.', Aut1d.CreateTime AS 'H.Solicita Aut',
    (
    SELECT usr.u_name
    FROM ousr AS usr
    WHERE Aut1d.UserID = usr.USERID
    ) AS 'Autoriza', Aut1d.UpdateDate AS 'F.Firma Aut.', Aut1d.updatetime AS 'H.Firma Aut.', Aut1.Remarks, C.DocNum AS 'Pedido',
    (
    SELECT usr.u_name
    FROM ousr AS usr
    WHERE Aut2.UserSign = usr.USERID
    ) AS 'Solicita', Aut2d.CreateDate AS 'F.Solicita Aut.', Aut2d.CreateTime AS 'H.Solicita Aut',
    (
    SELECT usr.u_name
    FROM ousr AS usr
    WHERE Aut2d.UserID = usr.USERID
    ) AS 'Autoriza', Aut2d.UpdateDate AS 'F.Firma Aut.', Aut2d.updatetime AS 'H.Firma Aut.', Aut2.Remarks, D.Docentry AS 'Entrada de Mercancias', D.DocDate, E.docentry AS 'Factura de Proveedores', E.docduedate,
    (
    SELECT usr.u_name
    FROM ousr AS usr
    WHERE Aut3.UserSign = usr.USERID
    ) AS 'Solicita', Aut3d.CreateDate AS 'F.Solicita Aut.', Aut3d.CreateTime AS 'H.Solicita Aut',
    (
    SELECT usr.u_name
    FROM ousr AS usr
    WHERE Aut3d.UserID = usr.USERID
    ) AS 'Autoriza', Aut3d.UpdateDate AS 'F.Firma Aut.', Aut3d.updatetime AS 'H.Firma Aut.', Aut3.Remarks, '>' as Pago,
    F.DocNum 'Pago Efectuado', CONVERT(nvarchar(10), g.docdate, 103) 'F.Pago'

    FROM OPRQ AS A
    INNER JOIN
    PRQ1 AS A1
    ON A.DocEntry = A1.DocEntry
    LEFT JOIN
    PQT1 AS B1
    ON B1.BaseEntry = A.DocEntry
    INNER JOIN
    OPQT AS B
    ON B.DocEntry = B1.DocEntry
    LEFT JOIN
    POR1 AS C1
    ON C1.BaseEntry = B.DocEntry
    INNER JOIN
    OPOR AS C
    ON C.DocEntry = C1.DocEntry
    LEFT JOIN
    PDN1 AS D1
    ON D1.BaseEntry = C.DocEntry
    INNER JOIN
    OPDN AS D
    ON D.DocEntry = D1.DocEntry
    LEFT JOIN
    PCH1 AS E1
    ON E1.BaseEntry = D.DocEntry
    INNER JOIN
    OPCH AS E
    ON E.DocEntry = E1.DocEntry
    LEFT JOIN
    OWDD AS Aut1
    ON Aut1.DocEntry = B.DocEntry
    INNER JOIN
    WDD1 AS Aut1d
    ON Aut1.WddCode = Aut1d.WddCode
    LEFT JOIN
    OWDD AS Aut2
    ON Aut2.DocEntry = C.DocEntry
    INNER JOIN
    WDD1 AS Aut2d
    ON Aut2.WddCode = Aut2d.WddCode
    LEFT JOIN
    OWDD AS Aut3
    ON Aut3.DocEntry = E.DocEntry
    INNER JOIN
    WDD1 AS Aut3d
    ON Aut3.WddCode = Aut3d.WddCode
    left join
    VPM2 F on e.DocEntry = F.DocEntry
    left join
    OVPM G on G.docnum = F.docnum
    --WHERE A.DocEntry = '21073';

    ResponderBorrar

Nota Importante: los comentarios son para agradecer, comentar o sugerir cambios (o hacer preguntas) sobre el artículo de arriba.


SAP y el logotipo de SAP son marcas comerciales registradas de SAP AG en Alemania y en varios otros países. No estamos afiliados ni relacionados con ninguna división o subsidiaria de SAP AG.