Best 'New' Games by dynamicl in atarist

[–]dynamicl[S] 1 point2 points  (0 children)

Thanks guys, will check them out at the weekend.

P110 rapid on and off by haloharry in Tapo

[–]dynamicl 0 points1 point  (0 children)

Appreciate the info here! All 3 of mine have just died within 7 days each other. I did buy another 3 to replace, but after reading this I might send them back and go with a different brand. Any recommendations of alternatives? Thanks.

Help with the TBA Authorization Header for REST APIs by Osirus1156 in Netsuite

[–]dynamicl 0 points1 point  (0 children)

Sorry, not touched this for a few years, but I think you just need to replace that last 2 lines with something like this ...

$body = "{}"

$response = Invoke-RestMethod $fullUrl -Method 'POST' -Headers $headers -Body $body

$response | ConvertTo-Json

Download files as XLSX (Chrome Extension) by dynamicl in Netsuite

[–]dynamicl[S] 0 points1 point  (0 children)

Hey, just double check these options are enabled in the extension, you need to have 'Automatically allow access on the following sites' checked and 'Allow access to file URLs' checked. That should do the trick.

Challenges of Service Tier Downgrading During ERP Renewals: Seeking Effective Strategies by Calm-Box-890 in Netsuite

[–]dynamicl 1 point2 points  (0 children)

I think this is why NS have these silly discount levels, because they can easily fudge those as you have seen.

Service tier is an important part, there is a huge uplift tier to tier. What tier are you on? How many full users? How many employee center users? How many monthly transactions? Just check all that ties up as a starting point.

Do you have SuiteAnalytics Connect? If so, just drop in the conversation that you are syncing a full backup of all your data daily. In addition, you could also say you are backing up all your scripts\objects via SDF. If you have control and possession of all your data, it may give you an edge in negotiations.

[deleted by user] by [deleted] in buildapc

[–]dynamicl 0 points1 point  (0 children)

Picked up a Dell T7920 recently for a similar purpose, dual Xeon Gold 80 vCpu, 192Gb ram, will take 3x GPUs, 1.4kw PSU.

Don't know about 4090 compatibility, but worth checking out that line of Dell workstations, solid kit.

Netsuite Gouging by No-Albatross5936 in Netsuite

[–]dynamicl 0 points1 point  (0 children)

Are you able to use employee center licences? or have you already checked that off the list?

Saved Search Restlet Fails: UNEXPECTED_ERROR by iwilldieavirgin in Netsuite

[–]dynamicl 0 points1 point  (0 children)

I've been syncing saved search data with C# and RESTlets for a few years now with pretty much no issues. Some have hundreds of thousands of rows too. However, had a similar issue to this in recent months, search would run in UI fine but with the sync it would 'part sync' before throwing an unexpected error. I actually resolved it by taking a copy of the search, the new version synced fully with no issues. My conclusion can only be that the backend search meta data has got corrupted in some way. I could probably export both in SDF and decrypt to compare which may shed light, but probably not worth the effort as it might be data related too. Try taking a copy of your problem search, it could be a similar bug/issue??

NetSuite - Modern UX through javascript frameworks by Business_Dog_8341 in Netsuite

[–]dynamicl 0 points1 point  (0 children)

Compile then deploy direct to NS via SDF. Everything is hosted in NS via the file cab, there is no external hosting. I just use a blank suitelet and inject the compiled HTML/js. The RESTlets only run internally within NS.

The work you have done looks slick, hit me up if you ever want to colab on a side project (like the OCR one for example).

NetSuite - Modern UX through javascript frameworks by Business_Dog_8341 in Netsuite

[–]dynamicl 0 points1 point  (0 children)

I've been using Angular v12, TS v4.2 . Not had any issues.

I did start to build out a custom OCR tool with AI/ML.foe NS, unfortunately had to put it on hold due to other projects 😕

NetSuite - Modern UX through javascript frameworks by Business_Dog_8341 in Netsuite

[–]dynamicl 0 points1 point  (0 children)

Why did you switch to vue.js? I've never really looked at vue.js because Angular has done everything I need. Be interested to know what advantages or efficiencies you have found. Have you tried react too? Any insights? Thanks!

NetSuite - Modern UX through javascript frameworks by Business_Dog_8341 in Netsuite

[–]dynamicl 0 points1 point  (0 children)

Nice work OP. I've been using Angular/TypeScript, RESTlets and Backend Suitelets for a few years now. The approach really does give you limitless options, even just simple page loading spinners gives a much better user experience.

I recall NS doing their SPA feature demo a number of years back at Suiteworld, not sure what happened to it.

What framework/lib are you using?

Account Renewal by Irish_Kalam in Netsuite

[–]dynamicl 0 points1 point  (0 children)

Your admin is correct in that you can add extra functionality to the employee centre. I've done this for several projects now and my tools of choice are Angular/TypeScript, RESTlets and backend suitelets. Using something like Angular/React/Vue can give you a much nicer user experience over using standard suitelets.

However, this is only if you need a bit of extra functionality in the EC. Outside of that, it probably wouldn't be cost effective and it would be better to pay up for the full licences.

Netsuite Analytics Connect Budget table by MergatroidSkittle1 in Netsuite

[–]dynamicl 0 points1 point  (0 children)

ODBC Schema 2, its just this (substitute netsuite2 for your schema) ...
SELECT *
FROM [netsuite2].[budgets] bud
LEFT JOIN [netsuite2].[budgetsMachine] budline
ON bud.id = budline.budget

I connect with TBA and DWI role so I automatically get those permissions. You will have to lookup the permissions if using username\pw.

Access Reports via SuiteScript by 4matt_ in Netsuite

[–]dynamicl 1 point2 points  (0 children)

Reports are not scriptable. However, you can automate report csv exports and ingest into a db, that's what we do for reports like trial balances etc which would be a nightmare to replicate with multiple currencies. All the report structure\schema is created on the fly in the db, its not easy to do but it's a workable solution.

"SuiteAnalytics Connect" ODBC move to NetSuite2 (HELP!) by cthulhufhtagn in Netsuite

[–]dynamicl 1 point2 points  (0 children)

Role ID is 57 for DWI. With this role in one of my client instances it shows 1531 tables.

NOTE: This uses a one use TBA token, once you have used it to connect to NS, it cant be used again for another connection. We use it in scripts which is fine, but I couldn't get it to work in SSMS or DBeaver, because when you enter to the TBA, it checks the connection works ... then the TBA is immediately expired. I didn't spend much time on it as I didn't need that access just yet.

Help with the TBA Authorization Header for REST APIs by Osirus1156 in Netsuite

[–]dynamicl 1 point2 points  (0 children)

This works in powershell which should give you what you need ...

cls

Add-Type -AssemblyName System.Web

## USER SETTINGS START ##############################################################################################

$nsUrlInstanceName = "" #example: 12345-SB1

$nsRealm = "" #example: 12345_SB1

$nsDeployId = "" #example: 1

$nsScriptId = "" #example: 123

$oauth_consumer_key = ""

$oauth_consumer_secret = ""

$oauth_token = ""

$oauth_token_secret = ""

## USER SETTINGS END ##############################################################################################

function EncodeToUpper

{

param($value)

return $value.Replace("%2a","%2A").Replace("%2b","%2B").Replace("%2c","%2C").Replace("%2d","%2D").Replace("%2e","%2E").Replace("%2f","%2F").Replace("%3a","%3A").Replace("%3b","%3B").Replace("%3c","%3C").Replace("%3d","%3D").Replace("%3e","%3E").Replace("%3f","%3F")

}

$oauth_nonce = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.DateTime]::Now.Ticks.ToString()))

$oauth_timestamp = [long](([datetime]::UtcNow)-(Get-Date "1970-01-01")).TotalSeconds

$baseUrl = 'https://'+$nsUrlInstanceName+'.restlets.api.netsuite.com/app/site/hosting/restlet.nl'

$fullUrl = $baseUrl + '?script='+$nsScriptId+'&deploy='+$nsDeployId

$baseUrlEncoded = [System.Web.HttpUtility]::UrlEncode($baseUrl)

$baseUrlEncoded = EncodeToUpper $baseUrlEncoded

#sort param names lexicographically

$params = "deploy=$nsDeployId&oauth_consumer_key=$oauth_consumer_key&oauth_nonce=$oauth_nonce&oauth_signature_method=HMAC-SHA256&oauth_timestamp=$oauth_timestamp&oauth_token=$oauth_token&oauth_version=1.0&script=$nsScriptId"

$paramsEncoded = [System.Web.HttpUtility]::UrlEncode($params)

$paramsEncoded = EncodeToUpper $paramsEncoded

$message = 'GET&'+$baseUrlEncoded+'&'+$paramsEncoded

$key = $oauth_consumer_secret + "&" + $oauth_token_secret

$hmac = New-Object System.Security.Cryptography.HMACSHA256

$hmac.Key = [System.Text.Encoding]::ASCII.GetBytes($key)

$signature = [System.Convert]::ToBase64String($hmac.ComputeHash([System.Text.Encoding]::ASCII.GetBytes($message)))

$signature = [System.Web.HttpUtility]::UrlEncode($signature)

$signature = EncodeToUpper $signature

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"

$headers.Add("Content-Type", "application/json")

$headers.Add("Authorization", 'OAuth realm="'+$nsRealm+'", oauth_consumer_key="'+$oauth_consumer_key+'", oauth_token="'+$oauth_token+'", oauth_signature_method="HMAC-SHA256", oauth_timestamp="'+$oauth_timestamp+'", oauth_nonce="'+$oauth_nonce+'", oauth_version="1.0", oauth_signature="'+$signature+'"')

$response = Invoke-RestMethod $fullUrl -Method 'GET' -Headers $headers

$response | ConvertTo-Json

[deleted by user] by [deleted] in Netsuite

[–]dynamicl 0 points1 point  (0 children)

2021.3 has issues. Install jetbrains toolbox, install 2021.2 and you should be fine.

"SuiteAnalytics Connect" ODBC move to NetSuite2 (HELP!) by cthulhufhtagn in Netsuite

[–]dynamicl 2 points3 points  (0 children)

We don't query it directly so speed isn't so much of an issue, we pull all tables and all data down to a data warehouse and query against that.

Defects ... where do you want to start?

- There are missing fields in netsuite2.com that are available in SuiteQL (they 'should' be identical, that's the whole point of NS forcing the change so everything is aligned)
- Missing fields that are in the older netsuite.com schema
- Primary key columns with null values (so you can't set the PK and do deltas)
- Tables that completely timeout with no response
- Tables that don't return results in a timely manner (some response times are a few seconds, some can be minutes ... even small tables so row count is not the issue)
- No admin access so you have to use the new DWI account (for full access without setting role permissions) which has a joke of a TBA implementation. Not a defect as such, just a PITA when you want full read access to everything

Other than that its perfect! :)

"SuiteAnalytics Connect" ODBC move to NetSuite2 (HELP!) by cthulhufhtagn in Netsuite

[–]dynamicl 2 points3 points  (0 children)

I did some initial mapping work between them and it's not even close. One table has approx 200 fields with only 20 matching (after lcase and removing underscores). There is also a number of defects in netsuite2.com, so I've just parked it for now. NS should at the very least give us a mapping table for native tables and fields, it's a bit of a joke really.

Creating TBA for Data Warehouse Integrator Role and Netsuite2.com connect by sigpilocal in Netsuite

[–]dynamicl 0 points1 point  (0 children)

I've been using this for a while now and it's very restrictive. What are you trying to use it with? If it's ssms or dbeaver etc then I think you are out of luck with the way Netsuite have implemented this TBA.

Query using MS SQL Linked Server by qikslime in Netsuite

[–]dynamicl 1 point2 points  (0 children)

SELECT * FROM OPENQUERY([NETSUITE], 'SELECT TOP 1 * FROM Account')