नीचे कोड है जो मैं सुइटस्क्रिप्ट का उपयोग करके नेटसुइट में एक सहेजी गई खोज चलाने के लिए आया था, सहेजे गए खोज परिणामों के साथ एक CSV बनाएं और फिर CSV ईमेल करें। समस्या यह है कि परिणाम 1000 रिकॉर्ड तक सीमित हैं। मैंने इस मुद्दे पर शोध किया है और ऐसा लगता है कि समाधान एक लूप चलाने के लिए है जो 1000 की वृद्धि में स्लाइस करता है। मुझे लगता है कि एक नमूना का उपयोग स्लाइस खोजों के लिए भी किया जाता है।सूटस्क्रिप्ट सहेजे गए खोज से 1000 से अधिक रिकॉर्ड कैसे प्राप्त करें?
हालांकि, मैं अपने कोड में स्लाइसिंग को शामिल करने में सक्षम नहीं प्रतीत होता। क्या कोई मुझे मेरे मूल खोज कोड के साथ स्लाइसिंग कोड को गठबंधन करने में मदद कर सकता है?
var search = nlapiSearchRecord('item', 'customsearch219729');
// Creating some array's that will be populated from the saved search results
var content = new Array();
var cells = new Array();
var temp = new Array();
var x = 0;
// Looping through the search Results
for (var i = 0; i < search.length; i++) {
var resultSet = search[i];
// Returns an array of column internal Ids
var columns = resultSet.getAllColumns();
// Looping through each column and assign it to the temp array
for (var y = 0; y <= columns.length; y++) {
temp[y] = resultSet.getValue(columns[y]);
}
// Taking the content of the temp array and assigning it to the Content Array.
content[x] += temp;
// Incrementing the index of the content array
x++;
}
//Inserting headers
content.splice(0, 0, "sku,qty,");
// Creating a string variable that will be used as the CSV Content
var contents;
// Looping through the content array and assigning it to the contents string variable.
for (var z = 0; z < content.length; z++) {
contents += content[z].replace('undefined', '') + '\n';
}
// Creating a csv file and passing the contents string variable.
var file = nlapiCreateFile('InventoryUpdate.csv', 'CSV', contents.replace('undefined', ''));
// Emailing the script.
function SendSSEmail()
{
nlapiSendEmail(768, 5, 'Inventory Update', 'Sending saved search via scheduled script', '[email protected]', null, null, file, true, null, '[email protected]');
}
निम्नलिखित कोड एक उदाहरण है जो मैंने पाया है जिसका उपयोग 1000 से अधिक रिकॉर्ड लौटने के लिए किया जाता है। दोबारा, एक नौसिखिया के रूप में, मैं अपने मूल, कामकाजी सुइटस्क्रिप्ट में स्लाइसिंग को शामिल नहीं कर सकता। किसी भी मदद की निश्चित रूप से सराहना की है।
var filters = [...];
var columns = [...];
var results = [];
var savedsearch = nlapiCreateSearch('customrecord_mybigfatlist', filters, columns);
var resultset = savedsearch.runSearch();
var searchid = 0;
do {
var resultslice = resultset.getResults(searchid, searchid+1000);
for (var rs in resultslice) {
results.push(resultslice[rs]);
searchid++;
}
} while (resultslice.length >= 1000);
return results;
रॉकस्टार, आपका जवाब रॉकस्टार है! यह खूबसूरती से काम किया .... मुझे मदद करने के लिए समय और प्रयास के लिए बहुत बहुत धन्यवाद! बहुत सराहना की। – Accounting
@ ग्लेडिंग ग्लेड ने इसे जानने में मदद की। चीयर्स !! – Rockstar
मुझे एक समस्या का सामना करना पड़ा है। यदि सहेजी गई खोज निष्पादित करने में धीमी है, तो स्क्रिप्ट त्रुटियां समाप्त होती हैं और कोई फ़ाइल उत्पन्न नहीं होती है।मैंने अपनी सहेजी गई खोज में मानदंड को अधिक कुशलता से निष्पादित करने के लिए ट्यून किया और अब समस्या हल हो गई है। लेकिन मुझे डर है कि सहेजे गए खोज रिकॉर्ड के 1000s में बढ़ने पर यह फिर से उभर सकता है। क्या कोई भी कोड है जिसे पूरी चीज को गलती से पहले एसएस समय निष्पादित करने के लिए जोड़ा जा सकता है? आपकी अंतर्दृष्टि के लिए अग्रिम धन्यवाद! – Accounting