Se conecta con sistemas ERP y MES como

Integraciones / ERP / Oracle NetSuite

Guía de integración de NetSuite para la programación de la producción con SkyPlanner APS

Esta guía explica a los partners, administradores y responsables de compras técnicas de NetSuite cómo se conecta SkyPlanner APS con Oracle NetSuite para programar la producción respetando la capacidad real de las máquinas y del personal. La integración entre SkyPlanner y NetSuite es bidireccional y utiliza servicios web REST y SuiteQL:

  • Se importan órdenes de fabricación, rutas de fabricación, centros de trabajo, artículos y pedidos de compra.
  • Las fechas y horas de inicio y fin previstas se escriben en las tareas de las operaciones de fabricación.
  • Las horas registradas y las cantidades producidas se envían de vuelta como Work Order Completions o Assembly Builds.
  • Los webhooks de SkyPlanner envían los cambios de la programación en cuanto se producen.
Diagrama de Gantt de SkyPlanner APS con tareas programadas en distintas estaciones de trabajo y una lista de órdenes debajo.

NetSuite es el sistema de referencia para los artículos, las BOM, las rutas de fabricación, las órdenes de fabricación, el inventario y el cálculo de costes. SkyPlanner elabora la programación de la producción con el motor Arcturus, respetando la capacidad real de las máquinas y del personal. El equipo de SkyPlanner configura la integración con tu cuenta durante la puesta en marcha y ofrece soporte tras la entrada en producción. La integración trabaja con registros estándar de NetSuite y no depende de Advanced Manufacturing SuiteApp.

SkyPlanner ya funciona integrado con NetSuite en UTU, fabricante de cuadros eléctricos y aparamenta en Ulvila, Finlandia. UTU entró en producción en septiembre de 2025, con SkyPlanner integrado con Oracle NetSuite y su sistema de nóminas. Para evaluar su encaje en el negocio, empieza por la página de programación de la producción para NetSuite y el artículo ¿Permite NetSuite programar la producción respetando la capacidad real?.

La decisión que define el proyecto: REST y OAuth 2.0

Oracle ha marcado el rumbo. A partir de 2026.1, las nuevas integraciones deben desarrollarse sobre los servicios web SuiteTalk REST con OAuth 2.0. Desde 2027.1, no se permiten nuevas integraciones con SOAP ni con Token-Based Authentication (TBA). Los endpoints SOAP se desactivan en 2028.2. Cualquier integración para la programación que se inicie hoy debe basarse en REST.

Opción de NetSuiteQué esFunción en una integración con APS
API de registros de SuiteTalk REST/services/rest/record/v1/<recordType>, con versiones vinculadas a las de NetSuite; !transform para registrar finalizaciones, consumos de materiales y ensamblajes de órdenes de fabricaciónEscritura: fechas de tareas de operación y órdenes de fabricación (PATCH), finalizaciones, consumos de materiales y ensamblajes (transform)
SuiteQL a través de RESTPOST /services/rest/query/v1/suiteql con Prefer: transient, hasta 100.000 resultados por consulta y paginación mediante limit/offsetLecturas masivas: artículos, rutas de fabricación, centros de trabajo, órdenes de fabricación abiertas y existencias
RESTlets de SuiteScript 2.1Endpoints personalizados de get/post/put/deleteCubrir funciones no disponibles en REST y combinar datos en un mismo envío, como una orden de fabricación con todas sus operaciones
SuiteScript User Event / Map-ReduceScripts que se ejecutan en el servidor de NetSuiteEnvío de notificaciones de cambios a sistemas externos
CSV Import AssistantAsignaciones de campos guardadas para la importaciónCargas puntuales; no sirve para la sincronización continua
SuiteTalk SOAPTecnología heredada, solo con TBANo iniciar nuevos desarrollos con esta opción

Autenticación

Para un sistema de programación que se comunique de servidor a servidor, utiliza OAuth 2.0 Client Credentials (máquina a máquina). La ruta de administración es Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup. Sube un certificado público y vincúlalo a una entidad, un rol y el registro de integración. Cada registro de integración admite un máximo de cinco certificados activos.

Crea un rol específico para la integración: permisos de consulta para artículos, revisiones de BOM, rutas de fabricación y centros de trabajo; y permisos de edición para órdenes de fabricación, notificaciones de producción y salidas de materiales. La API REST de SkyPlanner (referencia de la API) utiliza JWT, por lo que el middleware almacena ambas credenciales.

Eventos: no hay un webhook estándar

La documentación de Oracle no describe ningún webhook nativo de salida. El patrón que funciona es un script SuiteScript User Event sobre Work Order (afterSubmit) que pone en cola una llamada saliente mediante N/task o un script Map/Reduce, y realiza la llamada con N/https. Nunca haga llamadas síncronas desde afterSubmit: se ejecutan durante el guardado del usuario, por lo que un endpoint lento retrasa el guardado o hace que falle.

Los eventos de usuario no cubren todas las vías de modificación. Las actualizaciones masivas y las importaciones CSV pueden omitirlos. Combine el script de eventos con una consulta periódica de conciliación en SuiteQL sobre lastmodifieddate para no pasar por alto ningún cambio. En sentido contrario, los webhooks de SkyPlanner activan la escritura de datos en NetSuite, que recibe las nuevas fechas en cuanto cambia el programa.

Mapeo de datos: de NetSuite a SkyPlanner

Registro de NetSuite (ID REST)Objeto de SkyPlannerSentidoFrecuencia
Assembly Item (assemblyItem), Inventory Item (inventoryItem)Producto / materialNetSuite → SkyPlannerCarga inicial y, después, a diario o cuando haya cambios
BOM Revision (bomRevision), componentes de la BOMEstructura multinivel del producto, necesidades de materialesNetSuite → SkyPlannerCuando haya cambios
Manufacturing Routing (manufacturingRouting, sublistas routingStep, routingComponent)Etapas del proceso: secuencia, estación de trabajo, tiempo de preparación y tiempo de ejecuciónNetSuite → SkyPlannerCuando haya cambios
Manufacturing Work Center (Group marcado como centro de trabajo): Machine Resources, Labor Resources, Work CalendarEstaciones de trabajo, grupos de estaciones de trabajo y turnosNetSuite → SkyPlanner; después, el mantenimiento se realiza en SkyPlannerCarga inicial
Work Order (workOrder): artículo, cantidad, ubicación, Production Start/End Date, estado; Sales Order vinculado para la fecha de entregaOrden / tarea con fecha de entrega y prioridadNetSuite → SkyPlannerCasi en tiempo real mediante User Event, más consultas periódicas de conciliación
Manufacturing Operation Task (manufacturingOperationTask)Operación programadaNetSuite → SkyPlanner; fechas: SkyPlanner → NetSuiteCasi en tiempo real
Existencias por ubicación (SuiteQL), Item Receipts (itemReceipt)Saldos de existencias para programar en función de los materialesNetSuite → SkyPlannerCada 15 a 60 minutos o al recibir materiales
Líneas de Purchase Order (purchaseOrder): artículo, cantidad, fecha prevista de recepción y estadoPedidos de compra / materiales pendientes de recibir (fecha prevista de entrega). Se consideran disponibles en la fecha de entrega; las existencias se actualizan cuando el pedido de compra se marca como DeliveredNetSuite → SkyPlannerCada 15 a 60 minutos o cuando haya cambios
Inicio y fin previstos de cada operaciónPATCH manufacturingOperationTask/{id} (startDate, endDate) y PATCH workOrder/{id} (Production Start/End Date)SkyPlanner → NetSuiteCuando cambie el programa, mediante un webhook de SkyPlanner
Mobile Confirmations, registros de tiempo, Production TimerPOST workOrder/{id}/!transform/workOrderCompletion: rango startOperation/endOperation, cantidad completada, tiempo de mano de obra en las líneas operation e ID del registro de tiempo de SkyPlanner como ID externoSkyPlanner → NetSuiteCon cada confirmación o por lotes
Consumo de materialesPOST workOrder/{id}/!transform/workOrderIssue, o isBackflush en la finalizaciónSkyPlanner → NetSuiteCon cada confirmación
Orden finalizada (cuentas sin WIP)POST workOrder/{id}/!transform/assemblyBuildSkyPlanner → NetSuiteAl finalizar la orden
Orden cerradaWork Order Close (workOrderClose)En NetSuite, a cargo del departamento financieroNo se automatiza de forma predeterminada

Patrones de integración

1. Carga inicial de datos maestros. Lee primero los centros de trabajo y, después, los artículos, las revisiones de BOM y las rutas de fabricación mediante SuiteQL. Las rutas de fabricación hacen referencia a los centros de trabajo, así que el orden importa. Durante la prueba, exporta esos mismos datos a CSV e impórtalos en SkyPlanner. La programación se valida antes de escribir código.

2. Sincronización de órdenes. Importa las órdenes de fabricación con estado Released e In Process. Decide desde el principio si también se incluirán las órdenes con estado Planned. Si las incluyes, trátalas como demanda provisional. Sincroniza los pedidos de compra abiertos en el mismo ciclo para que la programación compruebe cada tarea teniendo en cuenta tanto las existencias como los materiales pendientes de recibir, y no solo las existencias.

3. Escritura del programa en NetSuite. Cuando cambia el programa, un webhook de SkyPlanner envía las nuevas fechas de las operaciones al middleware. El middleware envía PATCH /services/rest/record/v1/manufacturingOperationTask/{id} (referencia de registros de Oracle) con startDate y endDate para cada operación modificada. Otro PATCH sobre la cabecera de workOrder establece Production Start y End Date. Escriba únicamente fechas y, si lo utiliza, un campo personalizado de secuencia. Nunca escriba cantidades ni datos de la BOM de vuelta en NetSuite. Para actualizar muchas operaciones en una sola transacción, un pequeño RESTlet guarda la lista completa de operaciones en una sola llamada. La API de registros sigue siendo la opción predeterminada.

4. Confirmaciones en planta. Los operarios registran su trabajo en SkyPlanner Mobile Confirmations. El middleware envía cada confirmación mediante las transformaciones de Work Order con POST /services/rest/record/v1/workOrder/{id}/!transform/workOrderCompletion, incluyendo startOperation, endOperation, la cantidad completada y el tiempo registrado en las líneas de operación. Las órdenes de fabricación sin WIP se cierran con !transform/assemblyBuild en su lugar. Work Order Completion a través de REST requiere la función Manufacturing Work In Process. La contabilización de inventario y costes sigue realizándose en NetSuite.

5. Idempotencia y reintentos. Cada notificación de producción lleva el ID del registro de tiempo de SkyPlanner como ID externo de NetSuite. Los ID externos son únicos por tipo de registro, de modo que un webhook reenviado se rechaza como duplicado en lugar de contabilizar dos veces las cantidades y los costes. Las escrituras pasan por una cola. Si una llamada falla por un límite de concurrencia, un registro bloqueado o un certificado caducado, se reintenta y queda registrada. El equipo de SkyPlanner que da soporte a la integración puede ver cualquier fallo que persista.

6. Reglas sobre qué sistema controla cada dato. NetSuite determina qué se fabrica: artículo, cantidad, BOM, ruta de fabricación y ubicación. SkyPlanner determina cuándo y dónde: secuencia de operaciones, estación de trabajo, inicio y fin. Las fechas modificadas en NetSuite se sobrescriben en la siguiente escritura de retorno, así que bloquea Production Start/End Date mediante una personalización del formulario o un flujo de trabajo.

Fases habituales del proyecto

La implantación suele completarse en unas semanas desde el inicio de la puesta en marcha, incluso en grandes empresas. Un proyecto con NetSuite incluye:

  • Prueba con tus propios datos: exportación a CSV de centros de trabajo, rutas de fabricación y órdenes de fabricación abiertas a partir de búsquedas guardadas, e importación en SkyPlanner durante la prueba de 30 días.
  • Mapeo de datos maestros: correspondencia entre los registros de NetSuite y los objetos de SkyPlanner, campos personalizados, unidades y modelo WIP o sin WIP de cada artículo.
  • Carga inicial: artículos, revisiones de BOM, rutas de fabricación y centros de trabajo mediante SuiteQL; después, configuración de turnos, operarios y estaciones de trabajo alternativas en SkyPlanner.
  • Sincronización de órdenes y pedidos de compra: órdenes de fabricación con estado Released e In Process, junto con pedidos de compra abiertos y sus fechas de recepción previstas, mediante scripts User Event y consultas periódicas de conciliación.
  • Escritura de retorno de la programación: envío de las fechas previstas de las operaciones a las órdenes de fabricación y a las tareas de operación, con OAuth 2.0 M2M configurado en los entornos de pruebas y de producción.
  • Notificaciones de planta: Work Order Completions, salidas de materiales o Assembly Builds a partir de Mobile Confirmations y los registros de tiempo.
  • Pruebas en paralelo con el plan actual: ejecución de la programación de SkyPlanner en paralelo con el proceso actual de lanzamiento de órdenes para comparar los resultados.
  • Entrada en producción: traslado de la planificación a SkyPlanner y bloqueo de los campos de fecha en NetSuite.

Unas rutas de fabricación depuradas y una sola filial mantienen el alcance acotado. Trabajar con varias filiales, consumo retroactivo de materiales en WIP y formularios personalizados exige más trabajo de mapeo.

Puntos críticos de NetSuite

  • Órdenes de fabricación sin ruta. Una orden de fabricación sin Manufacturing Routing no tiene operaciones que programar. Oracle indica lo mismo sobre su propio sistema de programación de la producción, que tiene en cuenta la capacidad real: «Work orders not associated with a NetSuite routing should not be scheduled.» (No deben programarse órdenes de fabricación que no estén asociadas a una ruta de fabricación de NetSuite). Localízalas con SuiteQL antes de la entrada en producción.
  • Los centros de trabajo tienen pocos datos. Un centro de trabajo de NetSuite es un Group con dos campos de cantidad, Machine Resources y Labor Resources (ambos con valor predeterminado 0), y un Work Calendar, normalmente «Default Work Calendar». Carga los centros de trabajo una vez y, después, mantén en SkyPlanner las estaciones de trabajo individuales, los turnos de cada persona, las herramientas, la matriz de tiempos de preparación y las estaciones de trabajo alternativas.
  • Calidad de los datos de Setup Time y Run Rate. La programación a capacidad infinita de NetSuite utiliza estos campos, pero, al no tener en cuenta la capacidad, los valores incorrectos pasan inadvertidos. Una programación de la producción que respeta la capacidad real de las máquinas y del personal los pone de manifiesto desde el primer día.
  • Con WIP o sin WIP. Con Manufacturing WIP, la producción se contabiliza mediante Work Order Issue, Work Order Completion y Work Order Close. Sin WIP, se utiliza un Assembly Build. La integración registra las notificaciones de producción de los artículos WIP y los ensamblajes del resto, por lo que el modelo de cada artículo forma parte del mapeo.
  • Advanced Manufacturing en la misma cuenta. Si la cuenta también utiliza Advanced Manufacturing SuiteApp, sus registros de Manufacturing Work Bench deben coincidir exactamente con la ruta de fabricación: secuencia de operaciones, nombre de la operación y centro de trabajo. Decide qué sistema fija las fechas de las operaciones. Dos sistemas de programación sobre las mismas órdenes de fabricación generan dos planes que compiten entre sí.
  • Límites de concurrencia. Los servicios web y las llamadas a RESTlet comparten un único límite de concurrencia de la cuenta, determinado por el nivel de servicio más 10 por cada licencia SuiteCloud Plus. Las consultas periódicas en paralelo, registro a registro, lo alcanzan rápidamente. Utiliza SuiteQL con paginación para las lecturas y pon las escrituras en cola.
  • La actualización del entorno de pruebas borra la configuración M2M. Las asociaciones de OAuth 2.0 Client Credentials se eliminan al actualizar el entorno de pruebas y no se copian entre cuentas. Un certificado caducado o revocado detiene la sincronización hasta que se crea una nueva asociación. Configura alertas para los fallos de autenticación.

Integración con NetSuite: quién la configura y da soporte

El trabajo incluye el mapeo de tus registros, rutas de fabricación y centros de trabajo, además de las restricciones que NetSuite no almacena como datos utilizables para la programación: matriz de tiempos de preparación, herramientas, número de operarios y recursos alternativos. Los webhooks de SkyPlanner envían de vuelta los cambios de la programación en cuanto se producen, incluidos los que realiza Autopilot.

  1. El equipo de SkyPlanner la configura durante la puesta en marcha y ofrece soporte tras la entrada en producción. Cada planta utiliza NetSuite de forma distinta: con WIP o sin WIP, formularios personalizados, scripts y criterios propios para las rutas de fabricación. El equipo mapea tus registros y conecta la API REST y los webhooks de SkyPlanner con NetSuite REST, SuiteQL y RESTlets. El soporte cubre el script User Event y el middleware, y se adapta a los cambios en tu configuración de NetSuite.
  2. Tu partner de NetSuite puede participar. Los partners conocen tus formularios personalizados, scripts y roles. Trabajan con la API REST de SkyPlanner, que abarca órdenes, productos, materiales, pedidos de compra, etapas de proceso y registros de tiempo. Dispone de documentación Swagger/OpenAPI y autenticación JWT. Documentación pública: documentación de SkyPlanner.
  3. Tus propios desarrolladores pueden trabajar sobre esta base. Una distribución habitual consiste en ejecutar el script User Event dentro de NetSuite y un pequeño servicio de middleware fuera. Basta con una clave de API para empezar (tutorial de integración), y el equipo de SkyPlanner presta ayuda cuando hace falta.

Primero valida la programación durante la prueba gratuita de 30 días, con datos en CSV, hasta 20 estaciones de trabajo y sin tarjeta de crédito. Así, la integración parte de una programación que ya se ajusta a la planta.

Una vez establecida la conexión, el motor Arcturus programa a partir de las órdenes de fabricación actualizadas de NetSuite y comprueba la disponibilidad de materiales en existencias y en pedidos de compra pendientes de recibir. Los operarios registran su trabajo con Mobile Confirmations, Production Timer y Quick Log Mode, y NetSuite refleja la actividad de la planta sin introducir datos manualmente. SkyPlanner está disponible desde 199 € al mes con 5 estaciones de trabajo incluidas, facturación mensual y cancelación en cualquier momento. El presupuesto de la integración se prepara de antemano según tu proceso y tus necesidades, junto con tu plan, para que conozcas el coste total antes de empezar. Habla con ventas para definir el alcance de tu integración con NetSuite, o consulta las funcionalidades y los clientes.

Opiniones de fabricantes sobre SkyPlanner

Kalle Kalliomäki, especialista en cadena de suministro de UTU, en la planta de producción de cuadros eléctricos en Ulvila

2 hahorradas cada semana

“Con SkyPlanner hemos pasado de planificar la producción en hojas de Excel a optimizarla en tiempo real.”

Kalle Kalliomäki, especialista en cadena de suministro
UTU · Cuadros eléctricos y aparamenta

La planificación de la producción ahorra 2 horas de trabajo cada semana, y las nuevas colas de trabajo llegan a la línea en segundos.

Leer el testimonio de UTU

Operarios con trajes de sala limpia en una línea de llenado de frascos de la planta farmacéutica de Laboratory & Allied en Nairobi

+90%de eficiencia en producción

“La eficiencia en producción ha aumentado un 90%.”

Abdul Rucyinga, responsable de TI
Laboratory & Allied · Fabricación de productos farmacéuticos

La eficiencia en producción ha aumentado un 90%, y preparar un plan optimizado de tres meses para todas las estaciones de trabajo lleva menos de 30 minutos.

Leer el testimonio de Laboratory & Allied

Vista aérea de la fábrica de sistemas de seguridad para cubiertas de Piristeel en Kauhava

99,2%de cumplimiento de plazos de entrega

“SkyPlanner nos ha dado visibilidad para identificar los cuellos de botella y ha aportado claridad a la gestión de la producción.”

Toni Tuori, responsable de producción
Piristeel · Sistemas de seguridad para cubiertas y de evacuación de aguas pluviales

El cumplimiento de plazos de entrega ha alcanzado el 99,2% este año, y la programación ahorra hasta cuatro horas de trabajo al día.

Leer el testimonio de Piristeel

Anu Järvinen, responsable de producción de Fredman Operations, junto a una célula robotizada de paletizado en Rauma

6 mesesde capacidad disponible que ventas puede consultar

“SkyPlanner proporciona una base fiable para toda la planificación de la producción.”

Anu Järvinen, responsable de producción
Fredman Operations · Papeles para envases aptos para el contacto con alimentos

El equipo de ventas ve la capacidad disponible con seis meses de antelación, y las solicitudes de cambios en la programación que antes requerían una hora o más se responden en segundos.

Leer el testimonio de Fredman Operations

Preguntas frecuentes

¿Cómo se conecta SkyPlanner APS con NetSuite?

En ambos sentidos, mediante la API de registros REST de NetSuite, SuiteQL y, cuando sea necesario, RESTlets. Las fechas de las operaciones se escriben con PATCH sobre manufacturingOperationTask. La mano de obra y la producción obtenida se registran mediante la transformación workOrderCompletion o assemblyBuild. El equipo de SkyPlanner configura la integración durante la puesta en marcha y presta soporte tras la entrada en producción. Su partner de NetSuite o sus propios desarrolladores pueden ampliarla a partir de la API REST documentada.

¿Necesitamos Advanced Manufacturing SuiteApp para usar SkyPlanner?

No. SkyPlanner realiza por sí mismo la programación de la producción, respetando la capacidad real de las máquinas y del personal, a partir de los objetos estándar Work Orders, Manufacturing Routings y Work Centers. Si la cuenta también utiliza Advanced Manufacturing, durante la definición del alcance se decide qué sistema establece las fechas de las operaciones.

¿Cómo se evitan los registros duplicados si un evento se envía dos veces?

Cada Work Order Completion lleva el ID del registro de tiempo de SkyPlanner como ID externo. NetSuite garantiza que los ID externos sean únicos para cada tipo de registro, por lo que rechaza los eventos reenviados en lugar de volver a registrar la cantidad y el coste. Las operaciones de escritura fallidas se ponen en cola, se reintentan y quedan registradas.

¿Podemos usar TBA o SOAP en lugar de REST y OAuth 2.0?

Para las nuevas integraciones, utilice REST con OAuth 2.0. Oracle dejará de permitir nuevas integraciones con TBA y SOAP a partir de 2027.1 y desactivará todos los endpoints SOAP en 2028.2. Una integración de SkyPlanner basada en REST y OAuth 2.0 seguirá funcionando tras ambas fechas.

¿Cómo detecta SkyPlanner las nuevas órdenes de fabricación de NetSuite?

NetSuite no dispone de un webhook de salida estándar documentado. Un script User Event en Work Order pone una notificación en cola al guardar. Una consulta periódica con SuiteQL detecta los cambios que el script no captura, como las importaciones CSV y las actualizaciones masivas.

¿Podemos probar SkyPlanner con datos de NetSuite antes de desarrollar la integración?

Sí. Exporte los centros de trabajo, las rutas de fabricación y las órdenes de fabricación abiertas en formato CSV, impórtelos en SkyPlanner durante la prueba de 30 días y compare la programación de la producción, que respeta la capacidad real de las máquinas y del personal, con su plan actual. Inicie la prueba gratuita o reserve una demostración.

¿Cuánto dura un proyecto de integración con NetSuite?

La implementación suele completarse en unas semanas desde el inicio de la puesta en marcha, incluso en grandes empresas. Durante la prueba ya se puede programar la producción con datos CSV, y UTU ya utiliza SkyPlanner con NetSuite (testimonio de UTU).