Saltar al contenido

Conector NetSuite Avanzado

Introducción

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

Resolución de Problemas y los "tutoriales

Esta sección describe problemas y soluciones 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 NetSuite

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

Encontrar el Dominio Específico de la Cuenta 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):

    adjunto

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

Construyendo 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/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
  • https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2022_1_0/netsuite.wsdl
  • https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2021_2_0/netsuite.wsdl

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

La información sobre qué versiones de Harmony Agente son necesarias para usar con las versiones WSDL anteriores se proporciona en Requisitos previos en el Extremo del conector NetSuite página.

Cambiar la Versión WSDL

Una buena práctica recomendada es actualizar periódicamente la versión WSDL utilizada por su extremo NetSuite para utilizar siempre una versión totalmente compatible. Los pasos siguientes describen la mejor manera de realizar el cambio, garantizando una actualización perfecta.

  1. Cree un nuevo extremo.

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

  3. Actualiza la función.

  4. Actualizar las transformaciones.

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

Nota

Aunque es posible simplemente editar la URL WSDL de un extremo existente y reconfigurar las actividades existentes, no se recomienda esta práctica. En tal escenario, no se informan 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 de 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 se permitían anteriormente ya no se aceptan, incluidas las URLs WSDL genéricas y las URLs específicas del centro de datos. Jitterbit recomienda utilizar siempre una URL WSDL específica de la cuenta.

Un extremo de NetSuite puede haber sido probado exitosamente anteriormente, 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 resultar del uso de una URL de descarga de WSDL incorrecta en la configuración de una conexión NetSuite. Debido a los cambios realizados por NetSuite, algunos formatos de URL WSDL que se permitían anteriormente 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/v2024_1_0/netsuite.wsdl
  • URL WSDL específica del centro de datos: https://webservices.na3.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl

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

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

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

Autenticación de Dos Factores NetSuite (tfa o 2fa)

Aquellos que usan la autenticación de dos factores NetSuite (TFA o 2FA) no deben usar el tipo de autenticación de inicio de sesión único (SSO) al configurar su extremo NetSuite en Jitterbit. Hacerlo puede provocar que falle su extremo NetSuite. En su lugar, se recomienda que estos usuarios habiliten la autenticación basada en token (TBA) en su cuenta NetSuite y configuren su extremo NetSuite en Jitterbit en consecuencia.

Nota

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

URL WSDL de NetSuite Sandbox

A partir de enero de 2018, NetSuite utiliza la misma URL tanto para su dominio de producción como para su dominio sandbox. 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 y cuando 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 zona de pruebas. Por ejemplo, al ID de la cuenta se le puede agregar _SB1, _SB2, etc. Debido a que NetSuite ya no usa una URL de sandbox separada y el sandbox ahora se indica mediante el ID de la cuenta, la casilla Sandbox se eliminó en las versiones 9.2 y posteriores de Design Studio..

Si su zona de pruebas de NetSuite no se ha actualizado desde que se desplegaron estos cambios de NetSuite, es posible que necesite utilizar una URL WSDL específica de la zona de pruebas.

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 un INSUFFICIENT_PERMISSION error al ejecutar operaciones usando un extremo NetSuite configurado con autenticación basada en token (TBA), es posible que necesite usar una rol diferente para generar los tokens de acceso o agregar permisos a la rol que está usando actualmente. En este caso, la prueba del extremo parece exitosa, pero durante la tiempo de ejecución de la operación se produce la excepción.

Para resolverlo, mientras genera tokens de acceso, asegúrese de generarlos en una rol de acceso total o de administrador o asegúrese de que se permitan los permisos adecuados para la rol.

Consejo

Las instrucciones detalladas están disponibles en la documentación de NetSuite Comenzando con la autenticación basada en tokens.

Error Inesperado para TBA

Si recibes un UNEXPECTED_ERROR error al probar la conexión a un extremo NetSuite configurado con autenticación basada en token (TBA), se recomienda verificar para asegurarse de que 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 varias razones; sin embargo, se sabe que este error se debe a tener una URL WSDL incorrecta cuando se utilizan agentes que son versión 9.2 a 9,5. En la versión de Agentes 9.6 y superiores, el texto del mensaje de error describe con mayor precisión el problema.

Actualización de Compatibilidad con NetSuite TLS

La información sobre el uso del cifrado TLS 1.2 se proporciona en Actualización de compatibilidad NetSuite TLS.

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 y/o RESTlets, obtenga más información sobre cómo esto podría afectar su integración en NetSuite 2017.2 Concurrency Governance.

Limitaciones de la Búsqueda Guardada de NetSuite

Al utilizar la búsqueda guardada de NetSuite, si intenta buscar objetos que tienen más de 1000 búsquedas guardadas, puede aparecer en Jitterbit Studio como si no hubiera búsquedas guardadas disponibles en el objeto. En este caso, el menú desplegable de búsqueda guardada en Jitterbit Studio no se completará con ninguna búsqueda guardada. Esto se debe al límite de 1000 registros impuesto NetSuite en 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 dentro de su instancia de NetSuite. Para un error de este tipo, el registro tendrá 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 la cantidad de búsquedas guardadas a menos de 1000. Una vez que se reduzca la cantidad 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 NetSuite y puede provocar problemas al migrar ambientes.

Funcionalidad Avanzada

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

Usando Funciones de NetSuite

Las funciones específicas de NetSuite disponibles en Formula Builder en Funciones > Funciones del conector se enumeran a continuación. Para obtener más información sobre cómo utilizar 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 de forma sincrónica; es decir, después de realizar una solicitud, la conexión se mantiene abierta. Si algunas solicitudes vencen el tiempo de espera durante una encuesta sincrónica, es posible que desee activar la configuración asincrónica. Con esta configuración, después de enviar la solicitud, Jitterbit sondeará periódicamente para ver si esa solicitud finalizó. Esto es más ú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 principio de la operación o dentro de la cadena de operación (consulte 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 NULL a Campos Personalizados

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

Según la documentación de NetSuite en CustomFieldList, los campos personalizados se pueden establecer en 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 NULL o en blanco (cadena vacía) a campos personalizados asignando el campo de origen tanto al externalId y name campos de un campo objetivo.

Uso de Segmentos Personalizados de NetSuite

Se admiten segmentos personalizados en objetos NetSuite estándar y personalizados para NetSuite Connector Crear, Actualizar, ObtenerLista, Actualizar, y Buscar actividades utilizando un NetSuite Extremo con un NetSuite WSDL de versión 2016.2 o superior. Debes estar usando 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 respuesta o solicitud de NetSuite:

adjunto

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

adjunto

Nota

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

Limitación

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

adjunto

Esta limitación no se aplica a otros tipos de actividades de NetSuite; es decir, los tipos Lista/Registro y Selección múltiple son compatibles con Crear, Actualizar, ObtenerLista, Actualizar, 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 en función de un estado específico, deberá especificar el valor de filtro de búsqueda correcto que corresponda con el estado deseado. Puede determinar el valor del filtro de búsqueda correspondiente como se proporciona en la siguiente tabla.

Por ejemplo, si desea que los criterios de búsqueda limiten los registros de Cumplimiento de artículos solo a aquellos en los que Estado del envío = Enviado, en lugar de usar la enumeración para Enviado (_enviado), en realidad necesitaría usar el valor a de Envío de artículo:C como proporcionado en la siguiente tabla. Se aplican traducciones similares a una variedad de objetos NetSuite.

adjunto

Estado Filtro de búsqueda
Venta en efectivo:Pago no aprobado Venta en efectivo:A
Venta en efectivo: No depositado Venta en efectivo:B
Venta en efectivo:Depositado Venta en efectivo:C
Verificar: Anulado Verificar:V
Cheque: Pago de facturas en línea pendiente de aprobación contable Comprobar:Z
Comisión: Pendiente de Pago Comisión:A
Comisión:Pagado en exceso 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 de estado de cuenta:Abierto Cargacliente:A
Cargo por estado de cuenta: pagado en su totalidad Cargacliente:B
Nota de crédito:Abrir ClienteCred:A
Nota de crédito:Totalmente aplicada ClienteCred:B
Depósito del cliente:No depositado Depcliente:A
Depósito del cliente:Depositado Depcliente:B
Depósito del cliente:Totalmente aplicado Depcliente:C
Factura:Abrir Invccliente:A
Factura: Pagada en su totalidad Invccliente:B
Pago:Pago no aprobado Pago de cliente:A
Pago:No depositado Pago del cliente:B
Pago:Depositado Pago de cliente:C
Reembolso al cliente:Anulado Rfndcliente:V
Cita:Abrir Estimación:A
Cita:Procesado Estimación:B
Cita:Cerrado Estimación:C
Cita:Anulado Estimación:V
Cita:Caducado Estimación:X
Informe de gastos: en curso ExpRepto:A
Informe de gastos: Pendiente de aprobación del supervisor ExpRepto:B
Informe de Gastos:Pendiente de Aprobación Contable ExpRepto:C
Informe de gastos: Rechazado por el supervisor ExpRepto:D
Informe de Gastos:Rechazado por Contabilidad ExpRepto:E
Informe de Gastos:Aprobado por Contabilidad ExpRepto:F
Informe de gastos: aprobado (anulado) por contabilidad ExpRepto:G
Informe de gastos: rechazado (anulado) por contabilidad ExpRepto:H
Informe de gastos: pagado en su totalidad ExpRepto:I
Recuento de inventario:Abierto InvCount:A
Recuento de inventario: iniciado InvCount:B
Recuento de inventario: completado/pendiente de aprobación InvCount:C
Recuento de inventario:Aprobado InvCount:D
Cumplimiento del artículo:Elegido Envío del artículo:A
Cumplimiento del artículo:Embalado Envío del artículo:B
Cumplimiento del artículo:Enviado Envío del artículo:C
Revista:Pendiente de aprobación Diario:A
Revista:Aprobada para publicación Diario:B
Cheque de responsabilidad de nómina: anulado LiabPymt:V
Oportunidad:En progreso Opción:A
Oportunidad:Estimación emitida Opción:B
Oportunidad:Cerrada – Ganada Opción:C
Oportunidad:Cerrado – Perdido Oportunidad:D
Cheque de pago:Indefinido Cheque de pago:A
Cheque de sueldo:Cálculo de impuestos pendiente Cheque de pago:C
Cheque de Nómina: Pendiente de Compromiso Cheque de pago: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 Recibir Orden de compra:B
Orden de Compra:Rechazada por Supervisor Orden de compra:C
Orden de Compra:Recibida Parcialmente Orden de compra:D
Orden de compra:Facturación pendiente/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:Aprobación pendiente RtnAuth:A
Autorización de devolución: Pendiente de recepción RtnAuth:B
Autorización de devolución:Cancelada RtnAuth:C
Autorización de devolución:Recibida parcialmente RtnAuth:D
Autorización de devolución: Reembolso pendiente/Recibido parcialmente RtnAuth:E
Autorización de devolución: Reembolso pendiente RtnAuth:F
Autorización de devolución:Reembolsado RtnAuth:G
Autorización de devolución:Cerrado RtnAuth:H
Orden de venta:Pendiente de aprobación Orden de venta:A
Orden de venta: Cumplimiento pendiente Orden de venta:B
Orden de venta: Cancelada Orden de venta:C
Orden de venta: Parcialmente cumplida Orden de venta:D
Orden de venta: facturación pendiente/cumplida parcialmente Orden de venta:E
Orden de venta:Facturación pendiente Orden de venta:F
Orden de venta:Facturado Orden de venta:G
Orden de venta: Cerrada Orden de venta:H
Cheque de responsabilidad tributaria: anulado ImpuestoLiab:V
Pago del impuesto sobre las ventas: Anulado PagoImpuesto:V
Pago de impuestos sobre las ventas: Pago de facturas en línea pendiente de aprobación contable Pago de impuestos: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: Holding TegRcvbl:H
Orden de Transferencia:Pendiente de Aprobación TrnfrOrd:A
Orden de transferencia: Cumplimiento pendiente TrnfrOrd:B
Orden de transferencia:Rechazada TrnfrOrd:C
Orden de transferencia: Parcialmente cumplida TrnfrOrd:D
Orden de transferencia: pendiente de recepción/cumplida parcialmente TrnfrOrd:E
Orden de transferencia: Pendiente de recepción TrnfrOrd:F
Orden de transferencia:Recibida TrnfrOrd:G
Orden de transferencia:Cerrada TrnfrOrd:H
Autorización de devolución del proveedor:Aprobación pendiente VendAuth:A
Autorización de devolución del proveedor: Devolución pendiente VendAuth:B
Autorización de devolución del proveedor:Cancelada VendAuth:C
Autorización de devolución del proveedor: devuelta parcialmente VendAuth:D
Autorización de devolución del proveedor: Crédito pendiente/Devuelto parcialmente VendAuth:E
Autorización de devolución del proveedor: Crédito pendiente VendAuth:F
Autorización de devolución del proveedor:Acreditado VendAuth:G
Autorización de devolución del proveedor:Cerrado VendAuth:H
Factura:Abierto VendBill:A
Factura: Pagada en su totalidad VendBill:B
Factura: Cancelada VendBill:C
Proyecto de ley: Pendiente de aprobación VendBill:D
Proyecto de ley: Rechazado VendBill:E
Pago en efectivo: Anulado Pago de venta:V
Pago en efectivo: Pago de facturas en línea pendiente de aprobación contable Pago de venta: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:Cerrado 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 resultar útiles para las integraciones de NetSuite: