Artículos sobre: Integraciones

Integración con SAP Business One B1 HANA

Este documento usa la palabra SAP, para referirse a SAP Business One.


La integración utiliza la API de Service Layer de SAP (web services) para conectar ambos sistemas de manera segura y robusta. Soporta SAP tanto SQL como HANA, a partir de la versión 10.


Pre-requisitos


  • Activar el Service Layer de SAP y contar con su URL pública en Internet. Tanto la activación como la URL se pueden obtener desde el Extension Manager.
  • Contar con las credenciales de un usuario: UserName, Password y CompanyDB. No se requiere adquirir una licencia adicional. Ver más adelante la opción de sincronización de pedidos, pues si se desea que se sincronicen como Oferta de venta, se necesita una licencia Profesional.
  • Proveer URL de servicios de ambiente de prueba para Handy (ambiente de QA).
  • Que el usuario tenga acceso a las siguientes entidades: Currencies, Quotations, Orders, Items, ItemGroups, BusinessPartners, Contacts y PriceLists.


Alcance de la integración


Sincronización de SAP → Handy


Clientes


Los socios de negocio de SAP son sincronizados a Handy para crearse como clientes. Se sincronizan los datos generales como código de cliente, nombre, dirección, teléfono, correo y también el límite de crédito. Ver el mapeo de datos completo abajo.


La zona con la que se creará el cliente corresponde al campo personalizado de SAP llamado OCRD.U_HandyZone , o se puede mapear a algún otro campo que se prefiera. Si los clientes no tienen definido este valor, no son sincronizados.


Sólo se sincronizan clientes (BusinessPartners) de tipo Customer (CardType=cCustomer).


⚠️ La integración no envía nuevos clientes desde Handy hacia SAP. Los clientes deben crearse primero en SAP. La integración espera que los códigos de cliente coincidan entre ambos sistemas.


Para controlar qué clientes están visibles en Handy, se debe agregar un campo personalizado en SAP:
OCRD.U_HandyCustomerStatus con dos posibles valores:

  • 01: deshabilitado
  • 02: habilitado


Estos valores deben de ser cadenas de texto (eje: "01"), no numéricos.


El campo activo/inactivo nativo de SAP no debe usarse como un reemplazo de este nuevo campo nuevo propuesto porque cosas como el estado crediticio pueden cambiar el campo activo/inactivo y eso podría hacer que el cliente se desactive en Handy, un comportamiento que no se desea porque debería poder registrar una visita en Handy, incluso si el estado de crédito para ese cliente es malo.


Si no se incluye este campo, todos los clientes estarán habilitados en Handy.


Productos


Los productos son sincronizados junto con sus familias de producto y categorías.


⚠️ Los productos deben crearse primero en SAP. La integración no envía productos de Handy hacia SAP. La integración espera que los códigos de producto coincidan entre SAP y Handy.


Los productos que se copian desde SAP deben cumplir las siguientes condiciones para que se puedan sincronizar, si no, se ignoran:

  • Estar activos (Active=Y, Frozen=N)
  • Ser vendibles (SalesItem=Y)
  • Ser inventariables (InventoryItem=Y)
  • Estar asignado al menos en una lista de precios
  • La unidad de medida debe existir en Handy (con el mismo nombre exacto que en SAP).


Para agrupar productos en Handy, se debe usar el campo personalizado llamado U_HandyProductCategory, el cual debe contener el nombre de la familia de producto que se quiere usar para Handy (por ejemplo, "Galletas", no un ID).


El campo nativo de SAP de Grupo de artículos, se sincronizará hacia la categoría de producto, que es solamente informativo.


La razón de hacerlo así, es que da más control sobre qué artículos deseas que estén disponibles en Handy. Si quisieras que un grupo de artículos que está disponible en SAP, no esté disponible en Handy, puedes asignar una familia de productos llamada "Inactivos", y desactivar esa familia en Handy.


Se debe seleccionar una lista de precios default a utilizar como el precio regular de Handy.


Precios


La sincronización soporta los siguientes esquemas:

  • Precio general del producto (por lista de precios)
  • Precios especiales por cliente


Cuando existen precios especiales para una combinación producto-cliente, estos tienen prioridad sobre el precio de lista.


Sólo se utiliza una moneda, que es el peso mexicano (código de moneda MXP).


📌 Puedes sincronizar hasta 5 listas de precios a la vez. Se seleccionan desde la configuración de la integración.


Sincronización de Handy → SAP


Preventa de Handy a Oferta de Venta


Las Preventas capturadas en Handy se convierten automáticamente en Ofertas de Venta dentro de SAP casi en tiempo real (cada 10 minutos). También es posible configurarlo para que se creen como Órdenes de Venta si así lo deseas.


El crear órdenes de venta es más estricto en SAP y provoca que el inventario se reserve. Las ofertas de venta no reservan el inventario no dependen de que un cliente esté activo.


Debido a que la orden de venta requiere fecha de entrega, se usará la utilizada en Handy.


Los tipos de pedido en Handy pueden estar configurados para dirigir los pedidos a diferentes almacenes en SAP. Esto se hace nombrando al tipo de pedido, con el almacén correspondiente en SAP (mismo nombre).


Como referencia, en el campo de comentarios en SAP se guarda:

  • ID del pedido de Handy
  • Tipo de pedido
  • Usuario que lo capturó
  • Comentarios adicionales (capturadas en el pedido de Handy)


Si se desea, es posible configurar la integración para que las órdenes canceladas en Handy, se cancelen en SAP en automático también.


El ID resultante del documento en SAP (sea oferta u orden) se coloca también en Handy para poder consultarlo desde el app web, si fuera necesario.


Alertas y notificaciones


Cuando un pedido no se logra crear en SAP (por ejemplo, por exceder el límite de crédito), se puede enviar:

  • Una notificación en tiempo real al vendedor hacia la app de Handy
  • Un correo electrónico al administrador, indicando la causa

Soporte técnico


Handy ofrece soporte técnico para la integración en el mismo horario regular del servicio de Handy, que es de lunes a viernes, de 08:00 a 19:00 horas (horario del Centro de México), de lunes a viernes.


Ofrecemos apoyo ante dudas sobre la integración o documentos que pudieran no sincronizarse. **


Notas técnicas y seguridad


  • La integración funciona tanto para SAP SQL como para SAP HANA (desde versión 10).
  • No es necesario adquirir licencias adicionales: puedes reutilizar una licencia existente, pero sí requiere una licencia.
  • Se requiere una licencia de tipo Usuario, no de tipo Instancia.


Para reducir riesgos de seguridad de exponer la API web de SAP en Internet, Handy permite que se gestione una regla de seguridad de red, de tal manera que sólo una IP fija pueda tener acceso a la API.


Handy administra un servidor proxy con la IP fija, y puede proporcionar el valor de la IP a utilizar. Es responsabilidad del cliente configurar su red para que el servicio sólo esté disponible para dicha IP fija, a través de sus configuraciones de firewall.


📋 Mapeo de Campos SAP B1 ↔ Handy


Pedidos


Campo Handy

Campo SAP B1

customer

CardCode

mobileDateCreated

DocDate

sellerComment

Comments

scheduledDateForDelivery

DocDueDate

items[].product

DocumentLines[].ItemCode

items[].quantity

DocumentLines[].Quantity

items[].price

DocumentLines[].Price

items[].product.tax

DocumentLines[].TaxCode


El campo de impuestos se mapea entre Handy y SAP. Los códigos de impuesto a usar son los correspondientes a la tabla OVTG de SAP. Ejemplo, el impuesto IVA 16% de Handy se mapea al valor IVA16 de SAP. Las necesidades de impuestos de cada cliente, deben de revisarse en lo individual.


Opcionalmente, se puede mapear el campo WarehouseCode de cada línea, al tipo de pedido utilizado.
cl

Clientes (socios de negocio de SAP)


Campo Handy

Campo SAP B1

code

CardCode

description

CardName

zone

U_HandyZone. También se puede personalizar a otro campo de usuario de la misma tabla.

address

BPAddresses[0].Street + BPAddresses[0].StreetNo

neighborhood

BPAddresses[0].Block

city

BPAddresses[0].City + BPAddresses[0].County + BPAddresses[0].State. No confundir County (condado) con Country (país).

postal_code

BPAddresses[0].ZipCode

phone_number

Phone1

enabled

U_HandyCustomerStatus ("01" = inactivo, "02" = activo). También se puede personalizar a otro campo de usuario de la misma tabla.

price_list

PriceListNum

balance

CurrentAccountBalance

credit

CreditLimit

email

ContactEmployees[0].E_Mail

owner

Concatenado de campos FirstName + MiddleName + LastName de ContactEmployees[0]

customerTaxId

FederalTaxID


  • Para las direcciones, la integración intenta encontrar la que corresponda al nombre establecido en la default de entrega (ShipToDefault). Si no existe, toma la primera.
  • Si el cliente no tiene vendedor asignado, se asigna a la zona "Default".
  • El ID de lista de precios de Handy a utilizar es aquel que corresponda en Handy en el código de la lista de precios, con el ID de la lista de SAP.


Productos (artículos de SAP)


Campo Handy

Campo SAP B1

code

ItemCode

description

ItemName

family

U_HandyProductCategory. También se puede personalizar a otro campo de usuario de la misma tabla.

category

ItemsGroupCode

barcode

BarCode

quantity

QuantityOnStock

price

Precio correspondiente a la lista de precios especificada como la default

unit

SalesUnit


Listas de precios


Campo Handy

Campo SAP B1

code

ListNum

name

ListName

product_code

ItemCode

price

Price


  • Sólo se sincronizan listas de precios activas en SAP.
  • Los precios se toman del catálogo de productos.


Precios especiales


Campo Handy

Campo SAP B1

product_code

ItemCode

customer_code

CardCode

price

Price


Cosas aún no soportadas


Estas son las funcionalidades todavía no implementadas en la integración:


  • Manejo de rutas (de venta y entrega)
  • Metas de venta
  • Promociones
  • Descuentos
  • Facturación desde Handy
  • Entregas
  • Multimonedas
  • Saldos pendientes
  • Desglose de saldos


Configuraciones avanzadas


Series

En ocasiones las empresas manejan rangos de folios de documentos en SAP diferentes para cada CEDIS.
Es posible determinar, por usuario (vendedor) qué folio de Series de SAP utilizar para los pedidos capturados en Handy.
La manera de hacerlo es colocar un texto en el campo de "extras" al editar un usuario en Handy, e indicar el ID de SAP de la serie a utilizar para dicho usuario.
Ejemplo, para usar el ID de folios (Series) de SAP número 22, se le coloca el siguiente JSON en el campo extras de usuario:

{ "Quotation": { "Series": 22 } }

Esto hará que los documentos capturados por dicho usuario, se asignen a esa serie de SAP.
Si este dato no se especifica en el usuario, se utiliza la serie por default que SAP toma.


Resolución de problemas


Cliente no se sincroniza de SAP a Handy

  • Verifica que la lista de precios asignada al cliente en SAP, está configurada para sincronizarse hacia Handy. Si la lista de precios asignada al cliente en SAP no existe, no se sincronizará a Handy. Verifica en este artículo las limitantes de sincronización de listas de precios de SAP a Handy.
  • Verifica que el cliente esté habilitado (campo "Valid" en SAP) y que tenga un valor en el campo de usuario de Zona en SAP.



¿Quieres agendar una reunión para integrar SAP con Handy?
¡Estamos en el chat para ayudarte! 😊

Actualizado el: 03/07/2025

¿Este artículo te resultó útil?

Comparte tu opinión

Cancelar

¡Gracias!