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

475
Visualizações
Suitescript estableció 'Crear orden de compra' en dropship

[NetSuite] Me gustaría tener un Suitescript para establecer el campo de elemento de la sublista "Crear orden de compra" en "DropShip" cuando se crea una orden de venta a través de la interfaz de usuario. También me gustaría agregar otro "si" para verificar un campo personalizado.

Encontré un artículo de SuiteAwners sobre cómo configurar ese campo:

" Estableciendo el campo Create PO en nulo a través de SuiteScript " ID de respuesta: 35911 Conseguí que Suitescript 1.0 funcionara (lo conseguí para configurar 'createpo' en 'DropShip', y no he podido hacerlo y otra instrucción if para verificar un campo personalizado en la orden de venta)

Aquí está el código de Suitescript 1.0:

 function beforeSubmit(type) { var count = nlapiGetLineItemCount('item'); for (i=1; i<= count; i++) { var currentContext = nlapiGetContext(); //setting of 'createpo' field only happens when the script is triggered via User Interface //add other if conditions here, if needed // 'createpo' values are Null, 'DropShip', or 'SpecOrd' if((currentContext.getExecutionContext() == 'userinterface')) { nlapiSetLineItemValue('item', 'createpo', i, 'DropShip'); } } }

Sé que Suitescript 1.0 está en desuso, así que me encantaría reescribirlo en Suitescript 2.0. Afortunadamente , el artículo de SuiteAwnsers también tiene un código para eso.

Aquí está el código Suitescript 2.0

 function beforeSubmit(type){ var count = objRecord.selectLine({ sublistId: 'item', line: i }); for (i=1; i<= count; i++) { var currentContext = runtime.executionContext(); //setting of 'createpo' field only happens when the script is triggered via Web Services //add other if conditions here, if needed if((currentContext.getExecutionContext() == 'webservices')) { objRecord.setSublistValue({ sublistId: 'item', fieldId: 'createpo', line: i, value: null }); } } }

Desafortunadamente, cuando llegué a Crear un nuevo script en Netsuite, solo me dio "Seleccionar tipo de script 1.0" como opción, no "Seleccionar tipo de script 2.0".

Sé que esto es un poco largo, así que si has llegado tan lejos, ¡aplaude! para resumir, hay dos cosas con las que necesito ayuda

1. ¿Cómo puedo agregar un "si" que verifique un valor archivado en la orden de venta "antes de enviar" en Suitescript 1.0?

2. ¿Cómo puedo hacer que funcione suitescript 2.0 (incluido el "si" que verifica un valor archivado en el pedido de ventas "antes de enviarlo")

Solo para que todos sepan que soy realmente nuevo en las secuencias de comandos, por lo que si tiene soluciones, brinde la mayor cantidad de detalles posible.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En primer lugar, debe configurar la versión del script en la parte superior de su script para que se reconozca como la versión 2:

 /** * @NApiVersion 2.x * @NScriptType ClientScript * @NModuleScope SameAccount */

A continuación, para su script:

  1. su var de conteo no obtiene un conteo de línea, está seleccionando una línea y le está pasando una var i no instanciada. Debe usar record.getLineCount() en su lugar:

    var cuenta = objRecord.getLineCount({ sublistId: 'item' });

  2. Comience su bucle for en 0. En suitescript 2, todas las listas están indexadas en 0.

    for (i = 0; i < contar; i++) {

  3. Dado que está haciendo referencia al módulo de tiempo de ejecución, asegúrese de que esté incluido en su declaración de definición.

El guión final podría ser algo como esto:

 /** * @NApiVersion 2.x * @NScriptType UserEventScript * @NModuleScope SameAccount */ define( ['N/runtime'], function(Runtime) { function beforeSubmit(context){ // get record from context var objRecord = context.newRecord; // get item list line count var count = objRecord.getLineCount({ sublistId: 'item' }); // start for loop at 0. lines are 0 indexed for (i = 0; i < count; i++) { var currentContext = Runtime.executionContext(); //setting of 'createpo' field only happens when the script is triggered via Web Services //add other if conditions here, if needed if((currentContext.getExecutionContext() == 'webservices')) { objRecord.setSublistValue({ sublistId: 'item', fieldId: 'createpo', line: i, value: 'DropShip' }); } } } return { beforeSubmit: beforeSubmit };

});

Con suerte, esto te ayudará a comenzar al menos. La pregunta es un poco confusa, pero esto debería proporcionarle un script 2.0 funcional para comenzar a trabajar.

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