Создание пользовательского делегата импорта/экспорта для объектов Cart и CartItem
InService обеспечивает возможность импорта и экспорта cart и cartItem в формате Microsoft Excel посредством com.ptc.sc.services.plugins.excel.ExcelCartFormatConverterDelegate. Однако если необходимо использовать любой другой формат (например, CSV), то можно создать пользовательский Java-класс делегата, реализующий интерфейс com.ptc.sc.services.plugins.CartFormatConverterDelegate.
В этом интерфейсе существуют следующие методы, которые можно реализовать. Утилита com.ptc.sc.services.utils.ImportExportUtility была создана для обработки основных функций импорта и экспорта; клиентам рекомендуется использовать эту утилиту при создании пользовательских делегатов. Дополнительные сведения о них см. в документации Java для перечисленных выше классов.
• InputStream convertFromSCItem(SCItem cart)
Реализуйте этот метод для экспорта корзины и ее содержимого. Данный элемент SCItem представляет объект корзины и содержит набор "элементов", который представляет список элементов корзины.
• SCItem convertToSCItem(InputStream inputStream)
Реализуйте этот метод, чтобы импортировать корзину и ее содержимое. Данный элемент InputStream представляет собой выгруженный файл.
• String getExtension()
Этот метод должен возвратить дополнительный суффикс, который может обрабатывать данный делегат. Например, при записи делегата CSV этот метод возвратит ".csv".
• String getMimeType()
Возвращает тип мультимедиа MIME, соответствующий расширению, которое обрабатывает этот делегат. Например, для CSV это будет: "текст/CSV".
• String getLocalizedTitle()
Возвращает локализуемый заголовок расширения, которое обрабатывает этот делегат. Это заголовок, который будет отображаться в интерфейсе пользователя, если пользователь щелкнет действие загрузки на странице свойств корзины:
Изменение кода клиента не требуется. Локализуемый заголовок расширения, которое поддерживает пользовательский делегат, будет показан в раскрывающемся списке Тип файла, который откроется после регистрации.
Регистрация пользовательского класса делегата
Добавьте следующую запись в файл <WT_HOME>/site.xconf, который определяет пользовательский делегат экспорта:
<Service context="default" name="com.ptc.sc.services.plugins.
CartFormatConverterDelegate">
<Option serviceClass="<customExportDelegateClassName>" requestor="null"
selector="<file extension>"/>
</Service>
Значение селектора должно быть расширением файла, которое поддерживает этот делегат. Например, если делегат поддерживает CSV, селектор должен иметь значение ".csv".