NetSuite SOAP API (SuiteTalk) 转储总帐

NetSuite SOAP API (SuiteTalk) to dump General Ledger

任何人都可以就如何使用 SuiteTalk、来自 NetSuiteSOAP API 阅读总帐提出建议吗?

例如,如果您查看 NetSuite UI 上的帐户或交易,则有一个选项 select“GL Impact”。这会生成相关总帐分录的清单。

但是,我想不出使用 SuiteTalk 获取相同列表的方法。我尝试调用的一个最初有希望的 SOAP 操作是 getPostingTransactionSummary(),但这只是一个摘要,缺少交易日期等细节。另一种方法是调用 search() 并传递一个 TransactionSearchBasic 对象。 returns 太多类型的交易,我不确定其中哪些确实对总账有影响。

我正在使用 JavaAxis 工具包进行 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;
    }
}