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

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

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

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

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 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