Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

170
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda