ディスカッション

スイート全体に組み込まれたAI機能は、データをより迅速に分析し、より優れた意思決定を促進する独自の考察を生成できるようにすることで、生産性を向上させ、リーダーに利便性をもたらします。オラクルのAI機能がどのように役立つかについては、これらのオンデマンド・ウェビナーをご覧ください。

AIを用いた自動化で請求書処理を合理化

AIを用いた考察を使用して、計画と予測を迅速化
NetSuiteの保存検索やレポートをマスターするための究極のガイドである分析センターを使用して、データの力を最大限に活用しましょう。複雑さを単純化し、組織の真の可能性を解き放ちます。今すぐ分析センターに参加して、新たな高みを目指しましょう!
NetSuite Release 2025.1リリース・ノートは、こちらからダウンロードできます。
Nominate Your Peers for NetSuite Support Community's Choice of the Quarter! Submit your nomination today.
Intelligent Payment Automation version 1.0.3 is now available in the SuiteApp Marketplace. The SuiteApp, powered by BILL, lets you automate payments, manage vendor details, and bank account information within NetSuite. Learn more

APIの戻り値を演算に参照する時、結果が誤る

適用

製品:  NetSuite 2023.1

 



シナリオ

APIの戻り値を演算に参照する時、結果が誤ります。
nlapiGetFieldValueとかnlapiGetCurrentLineItemValue等のSuiteScript APIの戻り値の種類は文字列です。それぞれのAPIの戻り値は演算にて直接に使用できるが、結果は誤ることもあります。以下のサンプルコードを参照します。

 
var field1 = nlapiGetCurrentLineItemValue('item', 'custcol1'); 
var field2 = nlapiGetCurrentLineItemValue('item', 'custcol2'); 
var field3 = nlapiGetCurrentLineItemValue('item', 'custcol3'); 
var field4 = nlapiGetCurrentLineItemValue('item', 'custcol4'); 
var field5 = nlapiGetCurrentLineItemValue('item', 'custcol5'); 
//field1 = 3, field2 = 1, field3 = 2, field4 = 1, field5 = 1 
var UnitWeight = nlapiGetCurrentLineItemValue('item', 'custcol_unit_weight'); 
var GalvRate = nlapiGetCurrentLineItemValue('item', 'custcol_galv_rate'); 
var ZincLevyRate = nlapiGetCurrentLineItemValue('item', 'custcol_zinc_levy_rate'); 
var PackingCost = nlapiGetCurrentLineItemValue('item', 'custcol_packing_cost'); 
var LidsCost = nlapiGetCurrentLineItemValue('item', 'custcol_lids_cost'); 
var answer = (field1*field2)+(field1*field3)+(field4)+(field5); 

サンプルの値:

結果の実績値:911

結果の期待値:11

 



解決策

掛け算によって、field1, field2, field3は数字に変換されるため、演算結果は9で正しくなります。然し、field4とfield5は文字列のままとなります。ネイティブJavaScriptに従って、「数字 + 文字列 = 文字列」になります。そのため、field4とfield5は9として連結されます。

SuiteAnswers 10282 サブリストAPI > nlapiGetCurrentLineItemValue(type, fldnam)によると、現時点で選択されているラインの値は文字列として返して、未存在の場合は「null」を返します。

field4とfield5は1で掛け算して数字に自動変換される場合、解決できます。他のJavaScriptのメソッドのparseFloatのようを使用できますが、精度等を考慮する必要があります。以下を参照します。

 
var

ようこそ!

サインイン

完全な詳細を表示するには、サインインしてください。

登録

アカウントがありませんか?ここをクリックして始めましょう!

リーダーボード

コミュニティの達人

第4四半期 (Oct-Dec 2025年)

今週のリーダー

今月のリーダー

歴代リーダー