Como obtener código ASIN Amazon?
En este tutorial te muestro 2 formas sencillas de scrapear el código ASIN de los productos de Amazon MX ### Descarga los recursos del video o enviame …
Chat GPT se convirtió en una herramienta sumamente útil que ha impresionado a todos desde el lanzamiento de DALL-E. Pero más allá de simplemente pensar en generar videos para YouTube de forma automática utilizando inteligencia artificial, considero que lo ideal es tomar esta herramienta en nuestras manos y crear cosas innovadoras.
Fue así como me encontré con un problema hace un par de semanas cuando intenté comprender las tablas de SAP, específicamente en relación a las tablas de facturas y pagos. A pesar de haber estudiado SAP BO por mi cuenta durante varios años, los cursos resultan ser bastante costosos, por lo que he aprendido a manejar esta herramienta de manera empírica.
Mi problema parecía sencillo:
Crear un query que obtuviera todas las facturas por artículo, pero agrupándolas por descripción y regresando el saldo pagado, el saldo vencido y el saldo facturado.
Parecía fácil, pero no lo fue ya que no comprendía al 100% las relaciones en SAP. Así que decidí experimentar con Chat GPT y probar suerte.
Empecé con la siguiente pregunta para darle un poco de contexto:
¿Conoces SAP Business One?
Sí, como modelo de lenguaje de IA, estoy familiarizado con SAP Business One. SAP Business One es un software de gestión empresarial diseñado específicamente para pequeñas y medianas empresas (PYMES). Ofrece una amplia gama de funciones, como gestión financiera, gestión de inventario, gestión de compras, gestión de ventas, gestión de relaciones con clientes (CRM), gestión de proyectos y más. SAP Business One se utiliza comúnmente en empresas que operan en múltiples ubicaciones y necesitan integrar sus procesos empresariales. Además, SAP Business One se integra con otras aplicaciones de SAP, lo que lo convierte en una solución completa para la gestión empresarial.
Era obvio que supiera sobre la herramienta, pero comence a describirle mi problema.
Genera un query para obtener un reporte de facturado y pagado por mes
SELECT
MONTH(invoice_date) AS mes,
YEAR(invoice_date) AS anio,
SUM(total) AS facturado,
SUM(paid_amount) AS pagado
FROM
invoices
WHERE
status = 'pagada' AND
invoice_date BETWEEN 'fecha_inicio' AND 'fecha_fin'
GROUP BY
MONTH(invoice_date),
YEAR(invoice_date)
Pareceria que entendio el contexto, pero no!, quizas fue mi error no especificar que lo obtuviera de SAP BO, asi que volvamos a intentar.
Genera un query para sap bussines one y obtener un reporte de facturado y juntalo con el monto pagado y la descripcion de la factura
SELECT
MONTH(OINV.DocDate) AS mes,
YEAR(OINV.DocDate) AS anio,
OINV.DocNum AS numero_factura,
OINV.CardName AS nombre_cliente,
OINV.Comments AS descripcion_factura,
OINV.DocTotal AS facturado,
OINV.PaidToDate AS pagado,
OINV.DocTotal - OINV.PaidToDate AS saldo_pendiente
FROM
OINV
WHERE
OINV.DocStatus = 'O' AND
OINV.DocDate BETWEEN '[fecha_inicio]' AND '[fecha_fin]'
¡Voilà! Tomó al menos 2 intentos previos para que me comprendiera que necesitaba tablas como OINV para obtener las facturas. Entonces, comprendí que ya entendía el concepto al que necesitaba llegar, pero también comprendí que necesitaba ser mucho más específico. Entonces, me tomó un par de minutos y prompts llegar a lo siguiente.
SELECT
OITM.ItemName AS Articulo,
SUM(INV1.LineTotal) AS Facturado,
SUM(INV1.LineTotal - ISNULL(Pagos.Pagado, 0)) AS Saldo,
SUM(Pagos.Pagado) AS Pagado
FROM
INV1
INNER JOIN OINV ON INV1.DocEntry = OINV.DocEntry
INNER JOIN OITM ON INV1.ItemCode = OITM.ItemCode
LEFT JOIN (
SELECT
RCT2.DocEntry,
SUM(RCT2.SumApplied) AS Pagado
FROM
RCT2
GROUP BY
RCT2.DocEntry
) Pagos ON INV1.DocEntry = Pagos.DocEntry
WHERE
OINV.DocStatus = 'O'
GROUP BY
OITM.ItemName
Este fue uno de mis queries finales, no fue el que realmente implementé, pero me dio el 80% de la estructura que necesitaba. Impresionan los conceptos que va tomando, como subqueries en tablas como RCT2.
Muchas veces fallaba el query que me arrojaba, pero es válido dar prompts como los siguientes.
El saldo_pendiente esta correcto?
El cálculo del saldo pendiente en la consulta que te proporcioné previamente puede no estar totalmente correcto, ya que se basa en la suposición de que no hay pagos parciales en las facturas. Si existen pagos parciales, el saldo pendiente se calcula de forma diferente.
Para obtener el saldo pendiente correctamente, debes unir la tabla RCT2 (tabla de pagos recibidos) con la tabla INV1 y hacer el cálculo utilizando la cantidad pagada en la tabla RCT2. Aquí te proporciono una consulta actualizada que realiza este cálculo:
Siempre recordandome que debes de ser especifico.
Incluye Dscription de inv1
or favor, para asegurarnos de estar entendiendo correctamente, ¿podrías confirmarnos si te refieres al campo "Description" de la tabla INV1 en SAP Business One?
Inclusive quise poner en duda sus querys ya que me retornaba campos que eran de versiones antiguas.
Puedes actualizar la consulta para la version v10 de sap bussines one
SELECT
OPYM.TransId AS NumeroPago,
OPYM.DocDate AS FechaPago,
INV1.DocTotal AS TotalFactura,
COALESCE(Pagos.Pagado, 0) AS TotalPagado,
INV1.DocNum AS NumeroDocumento,
INV1.CardCode,
OPYM.PayType AS MetodoPago,
INV1.Dscription,
OINV.Series
FROM
INV1
INNER JOIN OINV ON INV1.DocEntry = OINV.DocEntry
LEFT JOIN (
SELECT
RCT2.DocEntry,
SUM(RCT2.SumApplied) AS Pagado
FROM
RCT2
INNER JOIN ORCT ON RCT2.DocNum = ORCT.DocNum
WHERE
ORCT.Canceled = 'N'
AND ORCT.DocDate BETWEEN '2023-01-01' AND '2023-02-20'
GROUP BY
RCT2.DocEntry
) Pagos ON INV1.DocEntry = Pagos.DocEntry
LEFT JOIN OPYM ON Pagos.DocEntry = OPYM.DocEntry
WHERE
OINV.[DocDate] BETWEEN '2023-01-01' AND '2023-02-20'
AND OINV.Canceled = 'N'
ORDER BY
OINV.CardCode,
OINV.Series,
INV1.DocNum
Simplemente impresionante, algunas de las consultas eran erroneas o estaban mal los campos, pero comprendia el conxtexto y la necesidad principal.
Me encantaria saber tus comentarios o algun experimento, asi que puedes mandarme un mensaje en mis redes o unirte a nuestro grupo de Facebook y charlamos.
Happy coding!!
En este tutorial te muestro 2 formas sencillas de scrapear el código ASIN de los productos de Amazon MX ### Descarga los recursos del video o enviame …
¡Descubre Acorta.app Herramienta Útil y Libre de Anuncios! Hoy les presento una herramienta que, aunque puede parecer básica, resulta sumamente útil. …