2017-09-06 3 views
0

Je tente d'écrire un Restlet à l'aide de SuiteScript 2.0 pour que mon entreprise crée une nouvelle commande client. J'ai trouvé comment créer un record.Type.Sales_Order et mettre dans les minimums pour l'instant, mais je n'ai aucune idée sur la façon de créer un article pour la commande client et l'inclure dans le SO afin que je puisse créer la commande client.Création d'une commande client avec un article à l'aide de SuiteScript Netsuite

Voici ce que j'ai jusqu'à présent (dans un GET):

var salesOrder = record.create({ 
       type: record.Type.SALES_ORDER, 
       isDynamic: true, 
       defaultValues: { 
        entity: param.customer_id 
       } 
      }); 

salesOrder.setValue('trandate', new Date()), 
salesOrder.setText('orderstatus','Pending Fulfillment'); 
salesOrder.setValue('memo','Sales Order Generated from ' + param.customer_name); 
salesOrder.save(); 

-je créer un nouvel enregistrement d'un type d'élément, puis l'ajouter à l'ordre de vente avant d'enregistrer? J'ai regardé la section d'aide dans netsuite.com mais je ne trouve rien avec la création d'articles pour une commande client.

Merci pour toutes les réponses ou les endroits à regarder :)

Répondre

1

L'enregistrement de l'élément doit exister avant de l'ajouter à l'ordre de vente. Donc, si vous devez ajouter un élément qui n'a pas encore été créé, vous devez d'abord créer l'enregistrement de l'élément. Cependant, si vous vous demandez comment ajouter un élément existant à la sous-liste de l'article de l'ordre de vente, vous pouvez le faire:

var salesOrder = record.create({ 
      type: record.Type.SALES_ORDER, 
      isDynamic: true, 
      defaultValues: { 
       entity: param.customer_id 
      } 
     }); 

salesOrder.selectNewLine({ //add a line to a sublist 
    sublistId: 'item'  //specify which sublist 
}); 

salesOrder.setCurrentSublistValue({ //set item field 
    sublistId: 'item', 
    fieldId: 'item', 
    value: {{itemid}} //replace with item internal id 
}); 
salesOrder.setCurrentSublistValue({ 
    sublistId: 'item', 
    fieldId: 'quantity', 
    value: {{quantity}} //replace with quantity 
}); 

//repeat above pattern to set the rest of the line fields 

salesOrder.commitLine({ //writes the line entry into the loaded record 
    sublistId: 'item' 
}); 

salesOrder.save({     //writes record back to database 
    ignoreMandatoryFields: true //set for testing in case you want to create a record without validating which can give errors 
}); 

HTH

0

Cela dépend de la façon dont vous obtenez les détails de votre article, si vous avez des éléments id d'un un dans le système existant, vous pouvez définir à l'aide

API
  • 'selectNewLineItem', 'setCurrentLineItemValue', 'commitLineItem'.

Si vous obtenez seulement le nom de l'article, et ses champs de détails, qui n'existe pas dans le système, alors vous devez créer un nouvel élément en utilisant,

1) var xyz = createRecord (» item ') 2) utiliser xyz aura un identifiant de l'objet créé, utilisez-le pour le définir dans la commande client.

Remarque: Les API ne sont pas des noms exacts, ils représentent simplement leur utilisation.

Merci

+0

Merci vous! J'ai donc besoin de créer un enregistrement ou créer un SaleOrderItem et ensuite l'ajouter à la commande client avant d'enregistrer la commande client? –

+0

Oui, c'est vrai, vous devez le faire, au cas où vous n'avez pas l'élément déjà créé dans le système. –