El detalle técnico es que SAP B1 siempre asume que el precio debe provenir de la lista asociada al socio de negocios, salvo que se le indique lo contrario. Y aquí está la clave: en la plantilla del DTW, específicamente en el archivo PurchaseOrders_Lines.csv (que corresponde a la tabla POR1), existe el campo PriceSource o Price Source Type. Si no lo completas, el sistema usará el valor por defecto “P” (price list). Para que respete el precio manual que cargas en el campo Price, debés indicar PriceSource = N, que significa manual.

La lección es clara: aunque DTW automatiza procesos complejos como la gestión intersocietaria, hay que prestar atención a campos críticos como PriceSource, que pueden cambiar por completo el resultado. Con este ajuste, Juan Carlos y su equipo podrán mantener la coherencia de precios entre pedido de venta y orden de compra, garantizando que el margen de ganancia no se vea afectado.
DTW importación de Ordenes de Compra
La consulta en MundoSAP
Buen día a todos, reciban un cordial saludo. Mi nombre es Juan Carlos Barrios Medina, y trabajo en una empresa dando soporte a SAP B1. Nosotros tenemos el SAP B1 9.2 PL9, con Sql Server 2014 en un servidor con Windows server 2012 Standard. Actualmente tenemos 3 Sociedades: una sociedad manufactura productos y los vende a las otras sociedades, para su venta directa al cliente. De la sociedad que manufactura los productos, se realizan pedidos de venta y en las otras se generan órdenes de compra hacia la primera sociedad, para poder darle entrada a los productos, para su posterior venta a los clientes.
Estamos tratando de automatizar por medio de DTW el proceso de generar las órdenes compra, cuando se genere el pedido de venta en la sociedad origen. Actualmente generamos archivos de texto (csv) que se ejecutan con el DTW.exe, el cual consume los archivos .csv generados.
Todo funciona correctamente, el único problema es que al subir la orden de compra en las sociedades destino, no respeta el precio de los artículos, toma los que tiene definido el proveedor, no los que vienen en el achivo csv (Los precios varían, ya que de acuerdo a cada pedido de compra, se genera un pedido venta al cliente, con precios diferentes por clientes, por lo tanto para mantener el margen de ganancia, también se especifica un precio de compra diferente cada pedido).
He buscado como hacerle, pero no encuentro cómo. Se que en la tabla POR1 (detalle de orden compra) está el campo SpecPrice, que se pone en MANUAL, cuando se captura un precio diferente al de la lista de precios. Sin embargo, en el layout del DTW no viene ese campo, por lo que no sé como indicarle que respete los precios que trae el archivo csv.
Espero haberme explicado y espero poder recibir orientación que me ayude a resolver ésta situación.
Muchas gracias de antemano a todos.
Saludos…
La solución destacada por Consultoria-SAP
Hola @jcbarriostkl
en la plantilla del DTW ¿hay una columna con la descripción Price Source Type?
Si la hay, debes poner el valor “N”.
Un saludo
Otras respuestas
Importante
La siguiente respuesta es generada por nuestro Robot de Consultoria-SAP.com denominado “CSAPBOT” usando tecnología de IA -inteligencia artificial. Por lo tanto, puede haber datos incorrectos. No podemos garantizar que la información sea 100% correcta, solo consultores SAP profesionales podrían verificar la información. Muchos consultores leen nuestros foros de Ayuda SAP y lamentablemente pocos ayudan respondiendo y confirmando la información.
Si quieres aprender más y mejorar nuestros sistemas, te esperamos en este artículo.
Hola Juan Carlos, gracias por tu detallada explicación. Estás haciendo un excelente trabajo tratando de automatizar la gestión intersocietaria en SAP Business One 9.2 PL9 con SQL Server 2014, y el problema que planteás con el precio en las órdenes de compra generadas vía DTW es bastante común cuando no se configura adecuadamente el campo Price Source.
Vamos directo al punto que necesitás resolver:
El problema:
El DTW no respeta el precio que traés en el archivo .csv, y en su lugar, toma el precio que figura en la lista de precios del proveedor. Esto ocurre porque SAP B1 asume por defecto que debe aplicar el precio del socio de negocio o lista asignada, salvo que se le indique lo contrario.
La solución: usar correctamente el campo PriceSource
Como te indicó correctamente el usuario @Amarcos :
Si en la plantilla del DTW aparece el campo Price Source Type, debés colocar el valor
"N"
.
¿Qué significa esto?
El campo PriceSource
(en la tabla POR1
) define de dónde SAP B1 debe tomar el precio de la línea de la orden de compra:
Valor | Significado |
---|---|
P |
Precio desde lista del proveedor (Price List) (por defecto) |
N |
Precio manual (No price source) |
Al colocar "N"
, SAP respeta el precio manual que estás indicando en el campo Price
de la plantilla.
¿Cómo hacerlo en DTW?
- En la plantilla
PurchaseOrders_Lines.csv
(la que corresponde a la tablaPOR1
), verificá que exista el campo:
... , Price, PriceSource, ...
- Para cada línea de artículo, colocá:
PriceSource = N
- El campo
Price
tomará el valor manual que estás trayendo desde la sociedad origen.
Importante
- Asegurate que tu plantilla del DTW esté basada en la estructura correcta para tu versión de SAP B1 (9.2 PL9). Si no tenés ese campo, podrías estar usando una plantilla antigua. Podés regenerarla con Data Transfer Workbench → Templates → Purchase Orders → Export para obtener los campos actualizados.
- Validá que el campo esté habilitado en el layout del DTW. En versiones más recientes, PriceSource aparece como
PriceSource
oPriceSourceType
.
Alternativa (no recomendada): desactivar listas de precios
Aunque existe la opción de eliminar la asignación de lista de precios al proveedor, no se recomienda en este caso, ya que podría afectar otras operaciones estándar de compras. La mejor práctica es forzar el precio manual solo para estos documentos especiales, como lo estás haciendo.
Resumen Consultoria-SAP
En SAP Business One, cuando se sube una orden de compra vía DTW, si el campo PriceSource
no está correctamente indicado, el sistema toma por defecto el precio de la lista asignada al proveedor. Para que DTW respete el precio manual incluido en el .csv
, debés asegurarte de incluir el campo PriceSource = N
en cada línea del archivo. Este ajuste aplica al módulo MM (compras) y es compatible con la versión 9.2 PL9 que estás usando.
Felicitaciones por tu enfoque de automatización intersocietaria. Podés compartir tu experiencia o seguir consultando casos similares en los Foros de Consultoria-SAP.com, donde muchos usuarios de B1 están implementando integraciones similares.
¡Estamos aquí para ayudarte en los Foros SAP de Consultoria-SAP!
Más sobre Business One de SAP
Tu opinión nos importa
Lo que sea que estés pensando es un aporte importante para otros lectores.¿Crees que faltó algo? Puedes comentarlo a continuación !!!
0 comments:
Publicar un comentario
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.