Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

161
Views
RCRD_DSNT_EXIST","mensaje":" No hay registros de este tipo

De acuerdo, todos, muy a través del espejo en este caso. Muchas gracias a Barmar, Kryton y bknights cuya sabiduría me ha ayudado a llegar hasta aquí.

El guión ha cambiado y ahora está debajo. Puedo cargarlo y generar un registro de secuencia de comandos y, de hecho, intenta ejecutarse, pero ahora recibo este error:

"type":"error.SuiteScriptError","name":"RCRD_DSNT_EXIST","message":"No hay registros de este tipo".","stack":["createError(N/error)","initiateWorkflow( /SuiteScripts/grn20.js:9)"],"causa":{"tipo":"error interno","código":"RCRD_DSNT_EXIST","detalles":"No hay registros de este tipo"," userEvent":"aftersubmit","stackTrace":["createError(N/error)","initiateWorkflow(/SuiteScripts/grn20.js:9)"],"notifyOff":false},"id":"", "notifyOff":falso,"userFacing":falso}

Pero el registro definitivamente existe, el número de ID y el ID del flujo de trabajo son los especificados en el flujo de trabajo.

¿Qué más podría estar causando este problema?

¡Gracias de antemano por cualquier sugerencia!

Editar: me han dicho que el ID de registro a continuación debe hacer referencia al ID interno del elemento, esto no tiene sentido, el flujo de trabajo que intento iniciar está diseñado para cambiar campos en varios elementos, ¿por qué tendría que especificar uno solo? elemento en el guión?

 /** * @NApiVersion 2.x * @NScriptType UserEventScript */ define(['N/workflow', 'N/search', 'N/error', 'N/record'], function (workflow, search, error, record) { function initiateWorkflow(scriptContext) { var workflowInstanceId = workflow.initiate({ recordType: 'inventoryitem', recordId: 35, workflowId: 'customworkflow14' }); var inventoryitemRecord = record.load({ type: record.Type.INVENTORY_ITEM, id: 35 }); } return { afterSubmit: initiateWorkflow }; });
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Hay varias cosas mal con lo que estás haciendo. Esta es realmente una situación RTM.

Es posible que solo esté tratando de ejercitar la API, por lo que realmente no le importa el tipo de secuencia de comandos, pero Netsuite sí lo hace. Analiza la anotación NScriptType y rechaza su secuencia de comandos como no conforme.

Un script de evento de usuario tiene una forma como:

 /** * @NApiVersion 2.0 * @NScriptType UserEventScript */ define([module list], function(modules...){ function beforeRecordSubmit(ctx){...} // these functions can use SuiteScript API Modules function beforeRecordSubmit(ctx){...} function afterRecordSubmit(ctx){...} // you cannot use Suitescript API Modules outside of the returned functions return { beforeLoad: beforeRecordLoad, beforeSubmit: beforeRecordSubmit, afterSubmit: afterRecordSumbit }; });

También estas líneas:

 workflowTask.recordType = 'INVENTORY_ITEM'; workflowTask.recordId = 'Item';

parece que son solo conjeturas esperanzadoras. Hay ayuda en línea para todo esto si está conectado a Netsuite.

about 4 years ago · Juan Pablo Isaza Report

0

Hay 2 problemas que puedo ver:

  1. Debe usar define() en lugar de require() . Nota de los documentos de NetSuite a continuación:

Nota Este script de muestra utiliza la función require para que pueda copiarlo en el depurador de SuiteScript y probarlo. Debe usar la función de definición en un script de punto de entrada (el script que adjunta a un registro de script y lo implementa). Para obtener más información, consulte Conceptos básicos de secuencias de comandos de SuiteScript 2.x y Tipos de secuencias de comandos de SuiteScript 2.x.

  1. Debe implementar una función de punto de entrada en su bloque de return . Para un Script de eventos de usuario como este, eso significa que necesita uno de beforeLoad , beforeSubmit o afterSubmit .

Para su ejemplo, su secuencia de comandos terminaría luciendo algo como esto:

 /** * @NApiVersion 2.0 * @NScriptType UserEventScript */ define(['N/task'], function (task) { function workflowTask(scriptContext) { task.create({ taskType: task.TaskType.WORKFLOW_TRIGGER }); workflowTask.recordType = 'INVENTORY_ITEM'; workflowTask.recordId = 'Item'; workflowTask.workflowId = 'customworkflow14'; var taskId = workflowTask.submit(); } return { afterSubmit: workflowTask }; } );
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!