SuiteCommerce Advance: создание пользовательской службы для извлечения пользовательской записи из серверной части Netsuite в представление магистрали

У меня есть пользовательская запись, созданная в бэкэнде netsuite, с именем Webstore Landing Data. Запись имеет структуру и столбцы ниже

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

И нужно создать службу для извлечения этой записи в магистральном представлении. Помощь приветствуется.


person Danial    schedule 03.04.2017    source источник


Ответы (1)


Хорошо, хороший вопрос. Это самая важная и необходимая вещь в SCA, проверьте подробности ниже -->

Примечание. Ниже приведены шаги для версии SuiteCOMmerce Advance Vision (2016–2017).

Вам нужно создать ниже вещи -->

i.  SuiteScript Model 
ii. SuiteScript Service  
iii.JavaScript Model     
iv. JavaScript view  
v.  JavaScript Template
vi. Update distro.json
  1. Создайте пользовательскую папку (наш пользовательский модуль) в пользовательской папке как

    Модули/пользовательские/[email protected]

  2. Создайте папку SuiteScript в вышеуказанном модуле

  3. Создайте службу SuiteScript в папке «SuiteScript», как показано ниже ->

Имя файла и путь: Modules/custom/[email protected]/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/[email protected]/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

Имя файла и путь:

Модули/custom/[email protected]/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. Разверните свой код, и как только это будет сделано, вы сможете увидеть свои данные при ответном вызове, вы можете вызвать свою службу, как показано ниже.

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

  2. Теперь оставшаяся часть заключается в том, как вы можете получить эти данные в представлении магистрали, для этого перейдите в свое представление, где вы хотите получить эти данные.

Перед этим создайте модель Javascript в той же папке, что и ниже.

Имя файла и путь :

Модули/custom/[email protected]/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. Как только это будет сделано, вы можете вызвать приведенную выше модель javascript для любого файла представления/маршрутизатора, чтобы получить данные записи в представлении магистрали.

Определите режим и используйте приведенный ниже код

    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. Теперь вы можете получить доступ к своим данным в BrowseView(){} как

var recorddata = this.collection.attributes;

console.log(данные записи);

и передать его руль. Вот и все.

Дайте мне знать, если вам нужна помощь....

person Anup Chaudhary    schedule 03.04.2017
comment
Это потрясающие детали, я дам вам знать после реализации. Спасибо. - person Danial; 03.04.2017