2016-04-11 1 views
1

J'essaye de créer un script afin qu'il puisse mettre à jour le champ personnalisé avec la quantité disponible de "l'emplacement d'entrepôt" (nous avons l'emplacement multiple). D'abord, j'essayais de définir de la valeur dans le domaine personnalisé, mais cela ne fonctionne pas. code:Netsuite Script - Mise à jour Champ personnalisé quantité disponible // location = entrepôt

{ 
var stdField = 'custitem_annaslinenssku'; // Custom field for quantity 
var qtyAvail = 0; 
qtyAvail = rec.getValue('locationquantityavailable'); 
} 

function Qtyupdate() 
{ 
if(location == 1) 
nlapiSetFieldValue(stdField,qtyAvail); 
return true; 
} 

je voulais ensuite ajouter une logique comme « si la quantité est inférieure à 12 alors script doit faire les quantités de produit 0.

Je voulais aussi ajouter la quantité disponible pour kit/paquet item mais totalement aucune idée

+0

Pouvez-vous publier un peu plus de votre code? Ce n'est pas vraiment clair ce que vous essayez d'accomplir. – TonyH

+0

Bonjour Tony, j'essayais de copier la quantité disponible et de l'entrer dans le champ personnalisé que j'ai créé sur l'article. Après cela, je voulais ajouter de la logique à ce code "si la quantité est inférieure à 12 alors le script devrait faire la quantité d'article = 0. –

Répondre

2

Vous voudrez peut-être aussi partager la façon dont vous utilisez l'information Il semblerait que vous essayiez de mettre en place une réserve d'inventaire Il vaudrait peut-être mieux créer un emplacement de réserve et transférer l'inventaire Ensuite, vous pouvez mettre vos 12 articles dans l'emplacement de la réserve et ne pas les rendre disponibles pour le websit e.

Si ce n'est pas ce que vous cherchez à accomplir, vous pouvez consulter les champs de gestion des stocks de Netsuite.

Toutefois, pour répondre à votre question, vous ne pouvez normalement pas obtenir les champs d'emplacement d'inventaire à partir de l'enregistrement de l'élément, donc dans un script planifié, vous devriez faire quelque chose comme ceci. Si vous exécutez cela à partir d'un script utilisateur méfiez-vous des problèmes de gouvernance:

var items = nlapiSearchRecord('inventoryitem', null, 
    [ 
     new nlobjSearchFilter('inventorylocation', null, 'is', 1), // your target inventory location internal id. 
     new nlobjSearchFilter('isinactive', null, 'is', 'F'), 
     new nlobjSearchFilter('locationavailable', null, 'lessthan', 13), 
     new nlobjSearchFilter('custitem_my_custom_field', null, 'greaterthan', 0) 
    ],[ 
     new nlobjSearchColumn('locationavailable'), 
     new nlobjSearchColumn('custitem_my_custom_field') 
    ]); 
if(!items) return; 
items.forEach(function(it){ 
    var customLevel = parseInt(it.getValue('locationavailable'), 10)||0; 
    customLevel = Math.min(customLevel - 12, 0); 
    if(customLevel == parseInt(it.getValue('custitem_my_custom_field'), 10)) return; 
    nlapiSubmitField(it.getRecordType(), it.getId(), 'custitem_my_custom_field', customLevel); 
});  
+0

Réservant l'inventaire semble être un processus commun et demande que nous obtenons. nécessitent une implémentation personnalisée. – erictgrubaugh