NetSuite SOAP API (SuiteTalk) 转储总帐
NetSuite SOAP API (SuiteTalk) to dump General Ledger
任何人都可以就如何使用 SuiteTalk
、来自 NetSuite
的 SOAP
API 阅读总帐提出建议吗?
例如,如果您查看 NetSuite
UI 上的帐户或交易,则有一个选项 select“GL Impact
”。这会生成相关总帐分录的清单。
但是,我想不出使用 SuiteTalk
获取相同列表的方法。我尝试调用的一个最初有希望的 SOAP
操作是 getPostingTransactionSummary()
,但这只是一个摘要,缺少交易日期等细节。另一种方法是调用 search()
并传递一个 TransactionSearchBasic
对象。 returns 太多类型的交易,我不确定其中哪些确实对总账有影响。
我正在使用 Java
和 Axis
工具包进行 SOAP
操作,但示例使用任何语言(或原始 SOAP
XML
)将不胜感激。
您的交易搜索方向正确。
你要找的帖子是真实的并且行里有帐号。
但是,我会在保存的搜索编辑器中设置它,至少在您弄清楚如何过滤到可管理的行数之前。然后使用带有 savedSearchId 的 TransactionSearchAdvanced 通过 SuiteTalk
提取该信息
我可以用下面的代码搜索 GL 交易,这对你有帮助。
public void GetTransactionData()
{
DataTable dtData = new DataTable();
string errorMsg = "";
LoginToService(ref errorMsg);
TransactionSearch objTransSearch = new TransactionSearch();
TransactionSearchBasic objTransSearchBasic = new TransactionSearchBasic();
SearchEnumMultiSelectField semsf = new SearchEnumMultiSelectField();
semsf.@operator = SearchEnumMultiSelectFieldOperator.anyOf;
semsf.operatorSpecified = true;
semsf.searchValue = new string[] { "Journal" };
objTransSearchBasic.type = semsf;
objTransSearchBasic.postingPeriod = new RecordRef() { internalId = "43" };
objTransSearch.basic = objTransSearchBasic;
//Set Search Preferences
SearchPreferences _searchPreferences = new SearchPreferences();
Preferences _prefs = new Preferences();
_serviceInstance.preferences = _prefs;
_serviceInstance.searchPreferences = _searchPreferences;
_searchPreferences.pageSize = 1000;
_searchPreferences.pageSizeSpecified = true;
_searchPreferences.bodyFieldsOnly = false;
//Set Search Preferences
try
{
SearchResult result = _serviceInstance.search(objTransSearch);
List<JournalEntry> lstJEntry = new List<JournalEntry>();
List<JournalEntryLine> lstLineItems = new List<JournalEntryLine>();
if (result.status.isSuccess)
{
for (int i = 0; i <= result.recordList.Length - 1; i += 1)
{
JournalEntry JEntry = (JournalEntry)result.recordList[i];
lstJEntry.Add((JournalEntry)result.recordList[i]);
if (JEntry.lineList != null)
{
foreach (JournalEntryLine line in JEntry.lineList.line)
{
lstLineItems.Add(line);
}
}
}
}
try
{
_serviceInstance.logout();
}
catch (Exception ex)
{
}
}
catch (Exception ex)
{
throw ex;
}
}
任何人都可以就如何使用 SuiteTalk
、来自 NetSuite
的 SOAP
API 阅读总帐提出建议吗?
例如,如果您查看 NetSuite
UI 上的帐户或交易,则有一个选项 select“GL Impact
”。这会生成相关总帐分录的清单。
但是,我想不出使用 SuiteTalk
获取相同列表的方法。我尝试调用的一个最初有希望的 SOAP
操作是 getPostingTransactionSummary()
,但这只是一个摘要,缺少交易日期等细节。另一种方法是调用 search()
并传递一个 TransactionSearchBasic
对象。 returns 太多类型的交易,我不确定其中哪些确实对总账有影响。
我正在使用 Java
和 Axis
工具包进行 SOAP
操作,但示例使用任何语言(或原始 SOAP
XML
)将不胜感激。
您的交易搜索方向正确。 你要找的帖子是真实的并且行里有帐号。 但是,我会在保存的搜索编辑器中设置它,至少在您弄清楚如何过滤到可管理的行数之前。然后使用带有 savedSearchId 的 TransactionSearchAdvanced 通过 SuiteTalk
提取该信息我可以用下面的代码搜索 GL 交易,这对你有帮助。
public void GetTransactionData()
{
DataTable dtData = new DataTable();
string errorMsg = "";
LoginToService(ref errorMsg);
TransactionSearch objTransSearch = new TransactionSearch();
TransactionSearchBasic objTransSearchBasic = new TransactionSearchBasic();
SearchEnumMultiSelectField semsf = new SearchEnumMultiSelectField();
semsf.@operator = SearchEnumMultiSelectFieldOperator.anyOf;
semsf.operatorSpecified = true;
semsf.searchValue = new string[] { "Journal" };
objTransSearchBasic.type = semsf;
objTransSearchBasic.postingPeriod = new RecordRef() { internalId = "43" };
objTransSearch.basic = objTransSearchBasic;
//Set Search Preferences
SearchPreferences _searchPreferences = new SearchPreferences();
Preferences _prefs = new Preferences();
_serviceInstance.preferences = _prefs;
_serviceInstance.searchPreferences = _searchPreferences;
_searchPreferences.pageSize = 1000;
_searchPreferences.pageSizeSpecified = true;
_searchPreferences.bodyFieldsOnly = false;
//Set Search Preferences
try
{
SearchResult result = _serviceInstance.search(objTransSearch);
List<JournalEntry> lstJEntry = new List<JournalEntry>();
List<JournalEntryLine> lstLineItems = new List<JournalEntryLine>();
if (result.status.isSuccess)
{
for (int i = 0; i <= result.recordList.Length - 1; i += 1)
{
JournalEntry JEntry = (JournalEntry)result.recordList[i];
lstJEntry.Add((JournalEntry)result.recordList[i]);
if (JEntry.lineList != null)
{
foreach (JournalEntryLine line in JEntry.lineList.line)
{
lstLineItems.Add(line);
}
}
}
}
try
{
_serviceInstance.logout();
}
catch (Exception ex)
{
}
}
catch (Exception ex)
{
throw ex;
}
}