Tip 20: How can I use a search on Document(file) type in Netsuite SuiteScript (1.0 & 2.0)

Hello Friend,

Its always advised to avoid using saved searches  in scripting as there may be a chance of getting deleted either knowingly/unknowingly.

But there are certain searches which are not included in Search.Type like below example:

While working on a requirement, I realized to add a search on File. As I suggested above I always prefer to use search created in script rather than using a saved search.

But unfortunately I didn’t find any Search.Type for File/Document Type.

So below code was showing error Type Document is not a Valid type in Search.

var mySearch = search.create({
                type: Search.Type.DOCUMENT,
                filters : myFilters,
                columns : myColumns
            });

 

Then I checked in Saved Search and Document type is available there.

Not sure why Netsuite has that difference in Search.Type and Saved Search Type.

Then I created a saved search using Document type and loaded that search in my script as I have no other option.

saved_seach
Fig 1 – Saved Search On Document Record

I recommend to use word like “(Used By Script)” or “(DO NOT DELETE)” in saved search name, so that if somebody will see that saved search, he will be able to understand, this saved search is used for some script. So risk of getting deleted will be reduced to somewhat.

So, here a simple suggestion to all who has similar issues:

If something is not happening using search.create(), try creating saved search on same search type and use search.load() and use that as search.load() doesn’t need any type parameter.

           //Load Saved Search created already with selected id as filter
            var mySearch = search.load({
                id: ‘customsearch_search_file’
            });

I have used SuietScript 2.0 in my sample code. You can refer to SuiteScript 1.0 accordingly if you need.

Hope that will help you.

Happy Coding 🙂

Thanks,

Asha

Tip 19: Add Filter to search.load in Netsuite Suitescript 2.0

Hello Friends,

We all know how to add filters while creating a search in Suitescript, as search.create() has a parameter called filters.

Still I am adding it here for anybody who finds difficult to create a search:

var mySearch= search.create({
type: “folder”,
columns: [
“name”,
“internalid”,
“numfiles”
],
filters: [
search.createFilter({
name: ‘name’,
operator: search.Operator.IS,
values: [folderName]
})
]
});

 

Now let’s see how can we add filter to an already existing saved search created either in UI or by search.create() & then search.save().

    var mySearch = search.load({
id: ‘customsearch_test_search’
});
//Add Filter to search
var filter1 = search.createFilter({
name: ‘name’,
operator: search.Operator.IS,
values: [selectedName]
});
mySearch.filters.push(filter1);

I hope this small tip will help you.

Happy Coding 🙂

Tip 18: Setting DisplayType of field in Suitescript 2.0

Hello Friends,

As I have mentioned in my previous tip, in Suitescript 2.0 developer guide, few points are mentioned wrongly as below.

If you look for how to set display type of a field in either help or guide, you will find as below image.

display_type

But when you use the same syntax its not allowing to upload the code that is

displayType = serverWidget.FieldDisplayType.HIDDEN

But when I changed the syntax by replacing “=” to “:” as below

displayType : serverWidget.FieldDisplayType.HIDDEN

it worked 🙂

Try the same trial method, if you face similar issue.

Hope this trick will help you.

Tip 17: Setting Checkbox in Suitescript 2.0

Hello Friends,

I am exploring Suitescript 2.0 recently and learning new things day by day and I believe I should share it with you all who are also learning Suitescript 2.0.

There are some features which either you won’t get it in document or its wrong in Developer Guide of Suitescript 2.0

Even though its mentioned that in Suitescript 2.0 Checkbox value returns true/false rather than “T”/”F” unlike in Suitescript 1.0, but remember, when you will set Checkbox value use “T”/”F” not true/false.

var fldObj = form.addField({
                    id: ‘custpage_fld_chkbox’,
                    type: serverWidget.FieldType.CHECKBOX,
                    label: ‘Extracting Account?’,
                    container : ‘custpage_tab1’
});
fldObj.defaultValue = ‘T’;

Hope this small tip will save your time and effort.

I will keep on adding tip on Suitescript 2.0

Happy Coding 🙂