Saltar al contenido

¡Transforma tus conexiones en dinero para el final del año con nuestro nuevo Programa de Indicación de Clientes! Descubre más

Conector NetSuite avanzado en Jitterbit Design Studio

Introducción

Esta página cubre sugerencias para la resolución de problemas, tutoriales y funcionalidades avanzadas relacionadas con las integraciones de NetSuite.

Solución de problemas y tutoriales

Esta sección describe problemas y soluciones alternativas a problemas comunes experimentados con las integraciones de NetSuite y proporciona información sobre los cambios de NetSuite que pueden afectar su integración.

URL WSDL específica de la cuenta de NetSuite

Durante la configuración de un extremo de NetSuite, debe proporcionar una URL WSDL específica de la cuenta en el campo URL de descarga WSDL. Esta sección muestra cómo obtener esta URL buscando el dominio específico de la cuenta de NetSuite y usándolo en la URL WSDL.

Cómo encontrar el dominio específico de la cuenta de NetSuite

Estos pasos deben ser realizados por un administrador de NetSuite u otro usuario con el permiso Configurar empresa:

  1. Inicie sesión en la instancia de NetSuite.

  2. Vaya a Configuración > Empresa > Información de la empresa (o busque Información de la empresa).

  3. En la página Información de la empresa, vaya a la subpestaña URLs de la empresa. El dominio específico de la cuenta se encuentra bajo el encabezado SuiteTalk (Servicios web SOAP y REST):

    archivo adjunto

Para obtener más información, consulte URLs para dominios específicos de la cuenta.

Construcción de la URL WSDL

Una vez que haya obtenido el dominio específico de la cuenta, utilícelo para construir la URL WSDL:

  • https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2025_1_0/netsuite.wsdl- https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2024_2_0/netsuite.wsdl- https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl- https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2023_2_0/netsuite.wsdl- https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2023_1_0/netsuite.wsdl- https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2022_2_0/netsuite.wsdl

Durante la configuración de un extremo de NetSuite, ingrese esta URL WSDL específica de la cuenta en el campo URL de descarga de WSDL.

La información sobre qué versiones del agente Jitterbit se requieren para usar con las versiones WSDL anteriores se proporciona en Requisitos previos en el extremo del conector NetSuite página.

Cambiar la versión de WSDL

Se recomienda actualizar periódicamente la versión de WSDL que utiliza su extremo de NetSuite para utilizar siempre una versión totalmente compatible. Los pasos a continuación describen la mejor manera de realizar el cambio, garantizando una actualización sin problemas.

  1. Cree un nuevo extremo.

  2. Para cada operación de NetSuite, intercambie el extremo antiguo por el nuevo.

  3. Actualice la función.

  4. Refrescar las transformaciones.

  5. Repita los pasos 2 a 4 para cada operación de NetSuite.

Nota

Aunque es posible simplemente editar la URL del WSDL de un extremo existente y reconfigurar las actividades existentes, esta práctica no se recomienda. En tal caso, no se reportan errores de validez y es posible desplegar el proyecto, sobrescribiendo inadvertidamente operaciones exitosas con otras que fallan en tiempo de ejecución debido a discrepancias en el WSDL dentro de los esquemas.

Error del centro de datos de NetSuite

Debido a los cambios realizados por NetSuite, algunos formatos de URL WSDL que antes se permitían ya no se aceptan, como las URLs WSDL genéricas y las URLs específicas del centro de datos. Jitterbit recomienda usar siempre una URL WSDL específica de la cuenta.

Un extremo de NetSuite puede haberse probado previamente con éxito, pero ahora falla con este error:

Connector Error: Error getting the data center URL.

Caused by: org.jitterbit.integration.server.engine.connector.exception.NetSuiteWebServiceRuntimeException: FaultString:

In this account, you must use account-specific domains with this SOAP web services endpoint. You can use the SOAP getDataCenterUrls operation to obtain the correct domain. Or, go to Setup > Company > Company Information in the NetSuite UI. Your domains are listed on the Company URLs tab.

En algunas circunstancias, puede aparecer este error:

You are not requesting the correct data center for your company.

Estos errores pueden deberse al uso de una URL de descarga WSDL incorrecta en la configuración de una conexión de NetSuite. Debido a los cambios realizados por NetSuite, algunos formatos de URL WSDL que antes se permitían ya no se aceptan, incluidas las URLs WSDL genéricas y las URLs específicas del centro de datos. Por ejemplo:

  • URL WSDL genérica: https://webservices.netsuite.com/wsdl/v2025_1_0/netsuite.wsdl
  • URL WSDL específica del centro de datos: https://webservices.na3.netsuite.com/wsdl/v2025_1_0/netsuite.wsdl

Para resolverlo, cambie la URL WSDL para utilizar un dominio específico de la cuenta:

  • URL WSDL específica de la cuenta: https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2025_1_0/netsuite.wsdl

Para obtener instrucciones sobre cómo encontrar el dominio específico de la cuenta de NetSuite y luego usar el dominio específico de la cuenta en la URL WSDL, consulte URL WSDL específica de la cuenta de NetSuite.

Autenticación de dos factores de NetSuite (TFA o 2FA)

Quienes utilizan la autenticación de dos factores de NetSuite (TFA o 2FA) no deben usar el tipo de autenticación de inicio de sesión único (SSO) al configurar su extremo de NetSuite en Jitterbit. Si lo hace, su extremo de NetSuite podría fallar. Se recomienda que estos usuarios habiliten la autenticación basada en tokens (TBA) en su cuenta de NetSuite y configuren su extremo de NetSuite en Jitterbit como corresponda.

Nota

NetSuite está eliminando gradualmente el tipo de autenticación SSO y ahora se recomienda que todos los usuarios utilicen TBA.

URL WSDL de ambiente de pruebas de NetSuite

A partir de enero de 2018, NetSuite utiliza la misma URL para su dominio de producción y su ambiente de pruebas. Para Design Studio y Agente versiones 9.2 y superiores, no se requiere ninguna acción para los usuarios de Jitterbit con extremos NetSuite existentes configurados para el dominio sandbox, siempre que el sandbox se haya actualizado desde este cambio.

El número de cuenta de NetSuite ahora se utiliza para determinar si la cuenta está en producción o en un ambiente de pruebas. Por ejemplo, el ID de la cuenta puede ir acompañado de _SB1, _SB2, etc. Dado que NetSuite ya no utiliza una URL independiente para el ambiente de pruebas, y este ahora se indica mediante el ID de la cuenta, la casilla de verificación "Sandbox" se ha eliminado en Design Studio 9.2 y versiones posteriores.

Si su ambiente sandbox de NetSuite no se ha actualizado desde que se desplegaron estos cambios de NetSuite, es posible que necesite usar una URL WSDL específica del ambiente sandbox.

Consejo

Puede encontrar más información en la documentación de NetSuite Acerca de las cuentas Sandbox en el dominio NetSuite.

Error de permisos para TBA

Si recibes una INSUFFICIENT_PERMISSION Error al ejecutar operaciones utilizando un extremo de NetSuite configurado con autenticación basada en tokens (TBA), es posible que deba usar un rol diferente para generar los tokens de acceso o agregar permisos al rol que usa actualmente. En este caso, la prueba del extremo parece exitosa, pero al tiempo de ejecución la operación se produce la excepción.

Para resolverlo, al generar tokens de acceso, asegúrese de generarlos en un rol de acceso completo o de administrador, o asegúrese de que se permitan los permisos adecuados para el rol.

Consejo

Encontrará instrucciones detalladas en la documentación de NetSuite Introducción a la autenticación basada en tokens.

Error inesperado para TBA

Si recibes una UNEXPECTED_ERROR Error al probar la conexión a un extremo de NetSuite configurado con autenticación basada en tokens (por confirmar), se recomienda verificar que se esté utilizando la URL WSDL correcta. El error contendrá el siguiente texto:

FaultString: An unexpected error has occurred. Technical Support has been alerted to this problem.

Este error puede ocurrir por varios motivos; sin embargo, se sabe que este error es resultado de tener una URL WSDL incorrecta al usar agentes que son versión 9.2 a 9,5. En la versión de Agentes 9.6 y superior, el texto del mensaje de error describe el problema con mayor precisión.

Gobernanza de concurrencia de NetSuite

El 18 de agosto de 2017, NetSuite introdujo la "Gobernanza de Concurrencia" en su versión 2017.2. Si utiliza servicios web o RESTlets, obtenga más información sobre cómo esto podría afectar su integración en gobernanza de concurrencia de NetSuite 2017.2.

Limitaciones de búsqueda guardada de NetSuite

Al usar la búsqueda guardada de NetSuite, si intenta buscar objetos con más de 1000 búsquedas guardadas, es posible que en Jitterbit Studio parezca que no hay búsquedas guardadas disponibles para el objeto. En este caso, el menú desplegable de búsquedas guardadas de Jitterbit Studio no mostrará ninguna. Esto se debe al límite de 1000 registros impuesto por NetSuite para las solicitudes de API.

Confirmación de limitación

Para confirmar que el problema se debe a la limitación de NetSuite, puede consultar el registro de uso de servicios web de su instancia de NetSuite. Para un error de este tipo, el registro mostrará una entrada similar a la siguiente:

<platformCore:code>MAX_RCRDS_EXCEEDED</platformCore:code>
<platformCore:message>The maximum number ( 1000 ) of records allowed for a READ operation has been exceeded.</platformCore:message>

Solución alternativa a la limitación

Como solución alternativa, se recomienda limpiar las búsquedas guardadas de NetSuite que ya no se utilizan para reducir el número de búsquedas guardadas a menos de 1000. Una vez reducido el número de búsquedas, podrá seleccionar una búsqueda guardada en el menú desplegable de Jitterbit Studio.

Una alternativa para reducir el número de búsquedas guardadas es ejecutar la búsqueda guardada mediante SOAP, haciendo referencia a la búsqueda guardada por ID. Tenga en cuenta que esta alternativa no utiliza el conector de NetSuite y puede causar problemas al migrar ambientes.

Funcionalidad avanzada

Esta sección proporciona información sobre las características de Jitterbit que le permiten aprovechar al máximo su integración con NetSuite.

Uso de las funciones de NetSuite

Las funciones específicas de NetSuite disponibles en el Generador de Fórmulas en Funciones y Funciones del Conector se enumeran a continuación. Para obtener más información sobre cómo usar estas funciones, consulte Funciones del Conector.

  • NetSuiteGetSelectValue: Recupera los valores de la lista de selección para un campo de NetSuite.
  • NetSuiteGetServerTime: Obtiene la hora del servidor de NetSuite.
  • NetSuiteLogin: Obtiene la sesión de NetSuite.

Usando la configuración asincrónica

De forma predeterminada, las llamadas API a NetSuite se ejecutan sincrónicamente; es decir, tras realizar una solicitud, la conexión se mantiene abierta. Si algunas solicitudes agotan el tiempo de espera durante un sondeo sincrónico, puede activar la configuración asíncrona. Con esta configuración, tras enviar la solicitud, Jitterbit sondeará periódicamente para comprobar si ha finalizado. Esto resulta especialmente útil con grandes cantidades de datos.

Para activar la opción asincrónica, configure $jitterbit.netsuite.async=true en un secuencia de comandos que se encuentra, por ejemplo, al inicio de la operación o dentro de la cadena de operación (vea Creación de un secuencia de comandos). Para obtener información adicional, consulte la documentación de NetSuite sobre Procesamiento de solicitudes sincrónico versus asincrónico.

Pasar valores nulos a campos personalizados

Una limitación de la API de NetSuite es que no se pueden pasar valores NULL o en blanco (cadena vacía) a campos personalizados en NetSuite.

Según la documentación de NetSuite sobre CustomFieldList, los campos personalizados se pueden configurar como NULL enviando el campo en NetSuite nullFieldList.

En Design Studio, no verás nullFieldList Como campo u opción.

En su lugar, puede pasar valores nulos o en blanco (cadena vacía) a campos personalizados asignando el campo de origen a ambos. externalId y name campos de un campo objetivo.

Uso de segmentos personalizados de NetSuite

Los segmentos personalizados en objetos NetSuite estándar y personalizados son compatibles con el Conector NetSuite Crear, Actualizar, Obtener lista, Insertar, y Buscar actividades que utilizan un extremo de NetSuite con un WSDL de NetSuite de la versión 2016.2 o superior. Debe usar la versión 9.4 o superior tanto de Design Studio como de Agents para utilizar esta función.

Al configurar cualquiera de los tipos de actividad enumerados anteriormente, verá cada segmento personalizado mostrado en la estructura de solicitud o respuesta de NetSuite:

adjunto

Una vez que la actividad se utiliza en una transformación, podrá asignar desde o hacia cualquiera de esos segmentos personalizados, al igual que con otros campos. Los segmentos personalizados se encuentran en un nodo llamado customFieldList que está presente dentro de su nodo de objeto respectivo.

adjunto

Nota

Si sus segmentos personalizados no se muestran, verifique que la cuenta de usuario de NetSuite que se utiliza en su extremo de NetSuite tenga los permisos adecuados para interactuar con el segmento personalizado y el objeto con el que está asociado.

Limitación

En una búsqueda avanzada de NetSuite, no se admiten los segmentos personalizados del tipo Lista/Registro, tal como se define en NetSuite. Sin embargo, tenga en cuenta que el tipo Selección múltiple sí se admite en una búsqueda avanzada de NetSuite. Para determinar qué tipo se está utilizando, verifique el Tipo definido dentro de NetSuite en su Segmento personalizado:

adjunto

Esta limitación no se aplica a otros tipos de actividades de NetSuite; es decir, tanto los tipos Lista/Registro como Selección múltiple son compatibles con Crear, Actualizar, Obtener lista, Insertar, Búsqueda básica, Búsqueda ampliada, y Búsqueda guardada actividades.

Uso de la búsqueda de transacciones de NetSuite por estado

Al buscar transacciones de NetSuite según un estado específico, deberá especificar el valor del filtro de búsqueda correspondiente al estado deseado. Puede determinar el valor del filtro de búsqueda correspondiente según se indica en la tabla a continuación.

Por ejemplo, si desea que los criterios de búsqueda limiten los registros de Cumplimiento de artículos a aquellos cuyo Estado de envío sea "Enviado", en lugar de usar la enumeración "Enviado" (_shipped), deberá usar el valor "ItemShip:C", como se muestra en la tabla a continuación. Se aplican traducciones similares a diversos objetos de NetSuite.

adjunto

Estado Filtro de búsqueda
Venta en efectivo: Pago no aprobado Venta en efectivo: A
Venta en efectivo: Sin depósito Venta en efectivo: B
Venta en efectivo: Depositado Venta en efectivo: C
Marca: Anulada Marca: V
Marcar: Pago de facturas en línea pendiente de aprobación contable Marcar: Z
Comisión: Pendiente de pago Comisión: A
Comisión: Sobrepagada Comisión: O
Comisión: Pendiente de aprobación contable Comisión: P
Comisión: Rechazada por Contabilidad Comisión: R
Comisión: Pagada en su totalidad Comisión: X
Cargo en el estado de cuenta: Abierto Cargo al cliente: A
Cargo del estado de cuenta: Pagado en su totalidad Cargo al cliente: B
Nota de crédito: Abierta Crédito del cliente: A
Nota de crédito: Totalmente aplicada Crédito del cliente: B
Depósito del cliente: No depositado Depósito del cliente: A
Depósito del cliente: Depositado Depósito del cliente: B
Depósito del cliente: Totalmente aplicado Depósito del cliente: C
Factura:Abrir Invccliente:A
Factura: Pagada en su totalidad Factura del cliente: B
Pago: Pago no aprobado Pago del cliente: A
Pago: No depositado Pago del cliente: B
Pago: Depositado Pago del cliente: C
Reembolso del cliente: Anulado Reembolso del cliente: V
Cotización:Abierto Estimación:A
Cotización: Procesada Estimación: B
Cotización: Cerrada Estimación: C
Cita: Anulada Estimación: V
Cotización: Vencida Estimación: X
Informe de gastos: En curso Informe de gastos: A
Informe de gastos: Pendiente de aprobación del supervisor Informe de gastos: B
Informe de Gastos: Pendiente de Aprobación Contable Informe de Gastos: C
Informe de gastos: Rechazado por el supervisor Informe de gastos: D
Informe de gastos: Rechazado por Contabilidad Informe de gastos: E
Informe de gastos: Aprobado por Contabilidad Informe de gastos: F
Informe de gastos: Aprobado (Anulado) por Contabilidad Informe de gastos: G
Informe de gastos: Rechazado (Anulado) por Contabilidad Informe de gastos: H
Informe de gastos: Totalmente pagado Informe de gastos: I
Recuento de inventario: Abierto Conteo de inventario: A
Recuento de inventario: Iniciado InvCount: B
Recuento de inventario: Completado/Pendiente de aprobación InvCount:C
Recuento de inventario: Aprobado Conteo de inventario: D
Cumplimiento del artículo: Seleccionado Envío del artículo: A
Cumplimiento del artículo: Empacado Envío del artículo: B
Cumplimiento del artículo: Enviado Envío del artículo: C
Diario: Pendiente de aprobación Diario: A
Diario: Aprobado para publicación Diario: B
Cheque de responsabilidad de nómina: Anulado Responsabilidad: V
Oportunidad: En proceso Oportunidad: A
Oportunidad: Estimación emitida Oportunidad: B
Oportunidad: Cerrada - Ganada Oportunidad: C
Oportunidad: Cerrada - Perdida Oportunidad: D
Cheque de pago: Indefinido Cheque de pago: A
Nómina: Cálculo de impuestos pendiente Nómina: C
Nómina: Compromiso pendiente Nómina: D
Cheque de pago: Comprometido Cheque de pago: F
Cheque de pago: Vista previa Cheque de pago: P
Cheque de pago: Invertido Cheque de pago: R
Orden de compra: Pendiente de aprobación del supervisor Orden de compra: A
Orden de compra: Pendiente de recepción Orden de compra: B
Orden de compra: Rechazada por el supervisor Orden de compra: C
Orden de compra: Parcialmente recibida Orden de compra: D
Orden de compra: Pendiente de facturación/Recibida parcialmente Orden de compra: E
Orden de compra: Factura pendiente Orden de compra: F
Orden de compra: Totalmente facturada Orden de compra: G
Orden de compra: Cerrada Orden de compra: H
Autorización de devolución: Pendiente de aprobación Autorización de devolución: A
Autorización de devolución: Pendiente de recepción Autorización de devolución: B
Autorización de devolución: Cancelada Autorización de devolución: C
Autorización de devolución: Parcialmente recibida Autorización de devolución: D
Autorización de devolución: Reembolso pendiente/Recibido parcialmente Autorización de devolución: E
Autorización de devolución: Reembolso pendiente Autorización de devolución: F
Autorización de devolución: Reembolsado Autorización de devolución: G
Autorización de devolución: Cerrada Autorización de devolución: H
Pedido de venta: Pendiente de aprobación Pedido de venta: A
Pedido de venta: Pendiente de cumplimiento Pedido de venta: B
Pedido de venta: Cancelado Pedido de venta: C
Pedido de venta: parcialmente completado Pedido de venta: D
Pedido de venta: Pendiente de facturación/Completado parcialmente Pedido de venta: E
Pedido de venta: Facturación pendiente Pedido de venta: F
Pedido de venta: Facturado Pedido de venta: G
Pedido de venta: Cerrado Pedido de venta: H
Cheque de responsabilidad fiscal: Anulado Responsabilidad fiscal: V
Pago de impuesto sobre las ventas: Anulado Pago de impuesto: V
Pago de Impuesto sobre las Ventas: Pago de Facturas en Línea Pendiente de Aprobación Contable TaxPymt:Z
Tegata Por Pagar:Avalado TegPybl:E
Tegata por pagar:Emitido TegPybl:I
Tegata Por Pagar:Pagado TegPybl:P
Cuentas por cobrar de Tegata: Cobradas TegRcvbl:C
Cuentas por cobrar de Tegata: Descontadas TegRcvbl: D
Cuentas por Cobrar de Tegata:Avaladas TegRcvbl:E
Cuentas por cobrar de Tegata: Retención TegRcvbl: H
Orden de transferencia: Pendiente de aprobación Orden de transferencia: A
Orden de transferencia: pendiente de cumplimiento Orden de transferencia: B
Orden de transferencia: Rechazada Orden de transferencia: C
Orden de transferencia: parcialmente cumplida Orden de transferencia: D
Orden de transferencia: Pendiente de recepción/Completada parcialmente Orden de transferencia: E
Orden de transferencia: pendiente de recepción Orden de transferencia: F
Orden de transferencia: Recibida Orden de transferencia: G
Orden de transferencia: Cerrada Orden de transferencia: H
Autorización de devolución del proveedor: Pendiente de aprobación Autorización de devolución: A
Autorización de devolución del proveedor: Devolución pendiente Autorización de devolución del proveedor: B
Autorización de devolución del proveedor: Cancelada Autorización de devolución del proveedor: C
Autorización de devolución del proveedor: Devolución parcial Autorización de devolución: D
Autorización de devolución del proveedor: Crédito pendiente/Devolución parcial Autorización de devolución: E
Autorización de devolución del proveedor: Crédito pendiente Autorización del proveedor: F
Autorización de devolución del proveedor: Acreditada Autorización de devolución del proveedor: G
Autorización de devolución del proveedor: Cerrada Autorización de devolución del proveedor: H
Factura:Abierta FacturaVend:A
Factura: Pagada en su totalidad FacturaVend: B
Factura:Cancelada FacturaVend:C
Factura: Pendiente de aprobación Factura de venta: D
Factura:Rechazada FacturaVend:E
Pago en efectivo: Anulado VendPymt: V
Pago en efectivo: Pago de facturas en línea pendiente de aprobación contable VendPymt:Z
Orden de trabajo: Pendiente de construcción Orden de trabajo: B
Orden de trabajo: Cancelada Orden de trabajo: C
Orden de trabajo: En proceso Orden de trabajo: D
Orden de trabajo: Construido Orden de trabajo: G
Orden de trabajo: Cerrada Orden de trabajo: H

Fuente: http://blog.prolecto.com/2013/08/30/netsuite-searchfilter-transaction-internal-status-list/

Patrones de diseño

Los siguientes patrones de diseño pueden ser útiles para las integraciones de NetSuite: