SuiteCommerce Advance:创建自定义服务以从 Netsuite 的后端获取自定义记录到 backbone 视图

SuiteCommerce Advance: Create Custom Service to fetch the custom record from Netsuite's backend to backbone view

我在名为 Webstore Landing Data 的 netsuite 后端创建了自定义记录。记录具有以下结构和列

Record Id: customrecord_webstore_category_landing
Coloumns:
    i. custrecord_collection_name
    ii. custrecord_collection_sub_category
    iii. custrecord_collection_url 

并且需要创建服务以在 backbone 视图中获取此记录。帮助表示赞赏。

好的,问得好。这是 SCA 中最重要和必需的事情,请检查以下详细信息 -->

注意:以下步骤适用于 SuiteCOmmerce Advance Vision(2016-17) 版本

您需要创建以下内容-->

i.  SuiteScript Model 
ii. SuiteScript Service  
iii.JavaScript Model     
iv. JavaScript view  
v.  JavaScript Template
vi. Update distro.json
  1. 在自定义文件夹下创建自定义文件夹(我们的自定义模块)作为

    Modules/custom/Categorylanding@1.0.0

  2. 在上述模块下创建 SuiteScript 文件夹

  3. 在 'SuiteScript' 文件夹下创建 SuiteScript 服务,如下所示 -->

文件名和路径: Modules/custom/Categorylanding@1.0.0/SuiteScript/Categorylanding.ServiceController.js

代码:

 define(
    'Categorylanding.ServiceController'
,   [
        'ServiceController'
    ,   'Categorylanding.Model'
    ]
,   function(
        ServiceController
    ,   Categorylanding
    )
    {
        'use strict';

        return ServiceController.extend({

            name: 'Categorylanding.ServiceController'

           , get: function()
            {
               return Categorylanding.get();
            }
        });
    }
);
  1. 在 SuiteScript 文件夹下创建 SuiteScript 模型如下-->

文件名和路径: Modules/custom/Categorylanding@1.0.0/SuiteScript/Categorylanding.Model.js

代码:

define('Categorylanding.Model',
  [
  'SC.Model'
  ],
  function (SCModel) {
    return SCModel.extend({
      name: 'Categorylanding',
      get: function()
      {
        var filters = new Array();
        var columns = new Array();
        columns[0] = new nlobjSearchColumn('custrecord_collection_name');
        columns[2] = new nlobjSearchColumn('custrecord_collection_url');
        var results = nlapiSearchRecord('customrecord_webstore_category_landing', null, filters, columns);

        var results_ = JSON.stringify(results);
        return results_;
      }
    });
  }
)
  1. 已创建 ns 包文件

文件名和路径:

Modules/custom/Categorylanding@1.0.0/ns.package.json

代码:

{
    "gulp": {
        "javascript": [
            "JavaScript/*"
        ],
        "ssp-libraries": [
            "SuiteScript/*.js"
        ],
        "autogenerated-services": {
            "Categorylanding.Service.ss": "Categorylanding.ServiceController"
        },
        "templates": [
            "Templates/*"
        ],
        "images": [
            "Images/*"
        ],
        "sass": [
            "Sass/*.scss"
        ],
        "configuration": [
            "Configuration/*.json"
        ]
    }
}
  1. 更新发行版。 json 文件如下

在模块部分下添加您的模块

"custom/Categorylanding": "1.0.0",

中的依赖项
"ssp-libraries": {
            "entryPoint": "SCA",
            "dependencies": [

  "CategoryLanguage.ServiceController",
   "CategoryLanguage.Model", 
],
  1. 部署您的代码,一旦完成,您就可以在 return 调用时看到您的数据,您可以按如下方式调用您的服务

    http://yoursite.com/sca-dev-vinson/services/Categorylanding.Service.ss?c=4515330

  2. 现在剩下的部分是如何在 backbone 视图中获取此数据,为此请转到您想要此数据的视图

在此之前在与下面相同的文件夹下创建 Javascript 模型

文件名和路径 :

Modules/custom/Categorylanding@1.0.0/JavaScript/Categorylanding.Model.js

代码:

define('Categorylanding.Model',
  [
  'Backbone',
  'underscore'
  ],
  function (Backbone, _) {
    return Backbone.Model.extend(
    {
        url: function()
        { var  urlRoot = _.getAbsoluteUrl('services/Categorylanding.Service.ss');
            return urlRoot;
      }
    });
  }
);
  1. 完成后,您可以在任何 view/router 文件上调用上述 javascript 模型以获取 backbone 视图
  2. 上的记录数据

定义模式并使用下面的代码

    var collection = new CategorylandingModel();
    var view = new BrowseView({
                            translator: translator
                            ,   translatorConfig: self.translatorConfig
                            ,   application: self.application
                            ,   collection: collection
});

collection.fetch().done(function(data)  //again fetch Instagram service
                        {
                            console.log(data)                           //your service data will log here

                        });
  1. 现在您可以像
  2. 一样访问 BrowseView(){} 上的数据

var recorddata = this.collection.attributes;

console.log(记录数据);

并传递它的车把。就是这样。

如果您需要任何帮助,请告诉我....