【问题标题】:Netsuite Subscriptions RestletNetsuite 订阅 Restlet
【发布时间】:2015-05-08 06:06:46
【问题描述】:

我有一个更新客户的 restlet 脚本。在客户中,我想遍历传入的订阅对象,但我只有订阅名称来匹配它们。

有人知道如何访问 Netsuite 中的订阅对象吗?

【问题讨论】:

    标签: netsuite subscription


    【解决方案1】:

    我收到了来自 Netsuite 的回复,您无法访问 Netsuite 中的订阅对象,因此我不得不编写一些小技巧。我所做的是抓住一个现有的成员并加载它们。该成员应该有一个包含所有活动订阅的数组。

    然后我遍历它们并创建一个数组对象以传回包含订阅名称和 internalid。

    然后我可以使用该数组循环通过仅使用名称传入的客户订阅并获取匹配的 internalid。

    这是我写的代码。如果您认为它可以写得更好,请随时对其进行精简。

    var campaigns = new Array();
    try {
        // NETSUITE DOES NOT EXPOSE THE CAMPAIGN SUBSCRIPTIONS
        var filters = new Array();
        filters[0] = new nlobjSearchFilter('internalid', null, 'is', 26); //ANON CUSTOMER
        var columns = new Array();
        columns[0] = new nlobjSearchColumn('internalid');
        //columns[1] = new nlobjSearchColumn('campaign', null, null);
        results = nlapiSearchRecord('customer', null, filters, columns);
        resultsTotal = (results != null) ? results.length : 0;
        if (resultsTotal > 0) {
            var customerid = results[0].getId();
            var customer = nlapiLoadRecord('customer', customerid, {
                customform: -2
            });
            var mystring = JSON.stringify(customer); //CONVERT TO STRING
            var data = JSON.parse(mystring); //THEN PARSE TO JSON
            for (var node in data) { //FOR EACH NODE IN DATA            
                for (attr in data[node]) { //FOR EACH ATTRIBUTE IN THE NODE
                    if (node == "subscriptions") {
                        for (var node2 in data[node][attr]) { //FOR EACH NODE IN SUBSCRIPTIONS
                            if (node2 == 'subscription') { //GET SUBSCRIPTION NODES 
                                var campaign = new Object();
                                var name = '';
                                var internalid = 0;
                                for (var node3 in data[node][attr][node2]) {
                                    if (node3 == 'name') {
                                        name = data[node][attr][node2][node3];
                                    } else if (node3 == 'internalid') {
                                        internalid = parseInt(data[node][attr][node2][node3]);
                                    }
                                }
                                //nlapiLogExecution('AUDIT', name, internalid); //NAME  
                                campaign[name] = internalid;
                                if (!campaigns.hasObject()) {
                                    campaigns.push(campaign);
                                }
                                //nlapiLogExecution('AUDIT', node2, JSON.stringify(data[node][attr][node2]));   //SUBSCRIPTION                              
                            }
                            //nlapiLogExecution('AUDIT', node2, JSON.stringify(data[node][attr][node2]));
                        }
                        //nlapiLogExecution('AUDIT', node, JSON.stringify(data[node][attr])); //SUBSCRIPTIONS   
                    }
                }
            }
            nlapiLogExecution('AUDIT', 'CAMPAIGNS', JSON.stringify(campaigns));
        }
    } catch (e) {
        nlapiLogExecution('ERROR', 'Error', 'There was an error. ' + e.name + ' - ' + e.message + '.');
    }
    return campaigns;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 2018-01-08
      • 2016-11-16
      • 2018-12-21
      相关资源
      最近更新 更多