簡體   English   中英

如何使用suitescript操作xml?

[英]How to manipulate a xml using suitescript?

我對SuiteScript 2.0有問題:

在我的報價記錄中,我有一個按鈕來創建SOLICITACAO DE OF(制造請求),並且此文檔有其自己的編號,與報價編號不同,我在考慮使用xml來保存編號,並且每次需要生成一個新文檔,我生成一個新編號,因此我在用戶事件腳本中運行了以下代碼:

function getOfNumber(){
  var xmlFileContents = file.load({id:1474}).getContents();
  var xmlDocument = xml.Parser.fromString({text:xmlFileContents});
  var solicitacaoOfNode = xml.XPath.select({
    node : xmlDocument,
    xpath : '//SOLICITACAO_OF'
  });
  var currentOfNumber = solicitacaoOfNode[0].firstChild.nextSibling.textContent;
  log.debug({title:"Xml Content",details:currentOfNumber});
}

當我運行此代碼時,它將返回我當前的編號,直到我將其用作在另一個函數中創建的文檔的文檔編號為止。 直到這里還可以,但是現在,我需要在此數字上加1並將其保存在xml中,以便下次此函數在另一條記錄中運行時。

但是我不知道如何編輯此xml,有人可以幫我嗎? 我在查看模塊上的幫助中心時,發現了很多我不知道如何使用的N / xml函數。

這是我的xml文件:

<?xml version="1.0"?>
<SOLICITACAO_OF>
    <Current_number>8866</Current_number>
</SOLICITACAO_OF>

我不確定是否有辦法更新文件櫃上的現有文件,我將遵循的方法是:

  1. 定義一個特定的文件夾來存儲該xml文件。 為此創建一個參數是一個好習慣。
  2. 從此文件夾加載文件(單個)。
  3. 遵循您當前的邏輯getOfNumber()
  4. 您的xml內容很簡單,您可以使用新的Current_number輕松地再次將其生成為字符串。

  currentOfNumber = parseInt(currentOfNumber)++; var xmlString = '<?xml version="1.0"?>'; xmlString += '<SOLICITACAO_OF>'; xmlString += '<Current_number>'+ currentOfNumber+'</Current_number>'; xmlString += '</SOLICITACAO_OF>'; 

  1. 然后創建一個從文件櫃中刪除當前xml文件的函數
  2. 最后,以xmlString作為內容創建新的xml文件。

由於新的xml文件ID將是動態的(刪除/創建),因此文件夾id參數將很容易知道要加載的文件。

希望對您有意義。 祝好運!

聽起來您只是想為序列號提供一致的來源。 xml方法似乎有些矯over過正。

您可以輕松地加載一個文本文件,提取數字並重寫該文件。 (為此,請參見幫助中的N / file)

但是,您也可以定義具有整數字段的自定義記錄。 您將讀取整數值並記錄下來,然后寫回更新的值。 相當簡單,性能更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM