Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

588
Vistas
Los scripts de punto de entrada de SuiteScript 2.x deben implementar una función de tipo de script

Agregué un campo en el pedido de ventas llamado Membresía que se obtendrá del registro del cliente. Luego, cuando ese campo se establece en el nivel de membresía (por ejemplo, miembro de élite), establece automáticamente el campo de artículo de descuento en un artículo de descuento específico... Encontré una notificación que decía que los scripts de punto de entrada de SuiteScript 2.x deben implementar una función de tipo de script ¿Cómo puedo solucionar esto?

 /** *@NApiVersion 2.x *@NScriptType ClientScript */ define(["N/currentRecord", "N/runtime"], function(currentRecord,runtime) { function pageInit(context) { const record = currentRecord.get() // Get value of Membership Field const user = runtime.getCurrentUser().name } var membership = currentRecord.getField({ fieldId : "custentity1", }) if(membership == "Elite"){ //Setting up discount record.setValue({ fieldId: "discountitem", //fieldId of the Discount Item value: 137 // Internal ID of the Discount Item })} else { record.setValue({ fieldId: "discount item", value: 0 }); } return { pageInit : pageInit } });
about 4 years ago · Santiago Gelvez
3 Respuestas
Responde la pregunta

0

su código debe estar en un punto de entrada para que tenga un efecto en el registro de la orden de venta, parece que quiere usar el punto de entrada fieldChanged, mire eso en los documentos de ayuda.

about 4 years ago · Santiago Gelvez Denunciar

0

Su lógica debe estar presente dentro de la función, es decir, las funciones de punto de entrada. En su código, está fuera de la función (función PageInit). De ahí el error.

Prueba esto -

 /** *@NApiVersion 2.0 *@NScriptType ClientScript */ define(["N/currentRecord", "N/runtime"], function(currentRecord,runtime) { function pageInit(context) { const record = currentRecord.get(); // Get value of Membership Field const user = runtime.getCurrentUser().name; var membership = currentRecord.getField({ fieldId : "custentity1" }); if(membership == "Elite"){ //Setting up discount record.setValue({ fieldId: "discountitem", //fieldId of the Discount Item value: 137 // Internal ID of the Discount Item }); } else { record.setValue({ fieldId: "discount item", value: 0 }); } } return { pageInit : pageInit } });

Avísame en caso de problemas.

about 4 years ago · Santiago Gelvez Denunciar

0

Debido a que está usando 2.x, su configuración global determinará si esto se ejecuta como 2.0 o 2.1. Supongo que lo tiene configurado en 2.1 porque su contexto tiene un problema.

Si intenta ejecutar el código 2.1 en el cliente, es posible que tenga problemas. Uno de esos problemas es que el contexto no se completará. ¿Quizás es por eso que está usando currentRecord.get() en lugar de context.currentRecord ?

Nota: Cualquier código que esté fuera de una función (como pageInit ) se ejecutará cuando se ejecute la devolución de llamada del módulo.

 if(membership == "Elite"){ //Setting up discount record.setValue({ fieldId: "discountitem", //fieldId of the Discount Item value: 137 // Internal ID of the Discount Item })} else { record.setValue({ fieldId: "discount item", value: 0 }); }

por lo que este código se ejecuta antes de pageInit, por lo que la sugerencia de Sayeesh es buena.

Está mezclando algunas versiones de EcmaScipt. Obtendría un buen linter como eslint y me aseguraría de que está escribiendo el código para el objetivo que desea.

¿Tienes un campo llamado discount item y otro llamado artículo con discountitem ? Asumiré que es un error tipográfico.

Para jugar al abogado del diablo, voy a decir que puedes usar 2.1 si realmente quieres aquí. En 2.1, su código podría ser tan simple como: (no marcado)

 /** * @NApiVersion 2.1 * @NScriptType ClientScript */ define(['N/record','N/currentRecord'],(record,currentRecord)=>{ return { pageInit({ currentRecord : { id, type } }){ const so = record.load({ id, type }), membership = so.getValue({ fieldId : 'custentity1' }), fieldId = 'discountitem', value = membership === 'Elite' ? 137 : 0; so.setValue({ fieldId, value }); } } });
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda