Публичное пространство

Сохранение xml-копий загружаемых данных

Товары

Сохранение копий сообщений товаров

Чтобы, сохранять xml-копию импортируемых товаров через веб-сервис, включите настройку goods.catalog.imported.directory в файле, убрав #:

  • Windows: {Disk}\Папка_SetRetail10\standalone\configuration\modules\erp-integration\Products.properties
  • Linux: /var/lib/jboss/standalone/configuration/modules/erp-integration/Products.properties
goods.catalog.interval=60000
goods.catalog.import.plugin.read=ERPFileReader
goods.catalog.import.plugin.prepare=InputStreamPrepare
goods.sending.interval=10000
#goods.catalog.imported.directory=E:\\reports\\importedGC
goods.catalog.export.file.prefix=goods-catalog
goods.catalog.package=ru.crystals.setretailx.products.catalog

Таким образом при импорте данных через веб-сервис E:\reports\ importedGS (каталог можно изменять):

  • Linux: \var\lib\jboss\reports\importedGS.
  • Windows: {Disk}:\Reports\importedGS.

Управление сроками хранения данных в папке сохранения сообщений (очистка папки)

SRTS-1393 - Получение подробных данных проблемы… СТАТУС

CR-7779 - Получение подробных данных проблемы… СТАТУС

10.3.22.0

Настройки позволяют управлять хранением файлов сообщений в папке.

  • goods.catalog.imported.directory.clean.days - срок хранения файлов в днях. 
  • goods.catalog.imported.directory.clean.time - время выполнения подрезки файлов.

Логика работы

  • При выполнении задачи удаления более 1 часа, она останавливается с записью об этом в лог сервера, что сработал таймаут.

  • Если параметры закомментированы символом #? значит, они никак не действуют.

  • Если указана только дата или только время подрезки, или значения указаны некорректно (например, случайные символы, буквы, пробелы) подрезка не сработает. При чтении некорректных отправляется сообщение об этом в лог сервера при каждом его запуске (после запуска).

  • При успешном выполнении подрезки сохраняется запись об этом в лог сервера с указанием, сколько файлов было удалено и из какого каталога.

  • При неуспешном выполнении подрезки должна сохраняется в лог с указанием причины (нет прав на каталог, отсутствуют файлы для подрезки, сработал таймаут).

Примеры записи событий в логе

Успешное удаление
04.04 11:02:17 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner started successfully,days to clean after 1, first time 2023-04-04 11:09:00
04.04 11:09:00 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner onTimeout started! 2023-04-04 11:09:00
04.04 11:09:00 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner: onTimeout: going to delete 7 files!
04.04 11:09:00 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner: onTimeout: deleted 7files!
04.04 11:09:00 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner onTimeout finished! 2023-04-04 11:09:00
Пустые значения параметров
04.04 11:27:06 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner not started because "goods.catalog.imported.directory" is empty!
04.04 11:27:06 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner not started because "goods.catalog.imported.directory.clean.days" is empty!
04.04 11:27:06 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner not started because "goods.catalog.imported.directory.clean.time" is empty or can't be parsed!


Удаление с ошибкой
04.04 13:37:01 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner started successfully, days to clean after 1, first time 2023-04-04 13:40:00
04.04 13:40:00 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner onTimeout started! 2023-04-04 13:40:00 
04.04 13:40:00 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner: onTimeout: going to delete 3 files! 
04.04 13:40:00 WARN  [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner: onTimeout: can't delete goods-catalog_04-04-2023_10-46-28_1.xml, error - [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner.onTimeout(ImportedGoodCatalogCleaner.java:108), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.lang.reflect.Method.invoke(Method.java:498), org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374), org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:127), org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:137), org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:34), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53), org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:34), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374), org.jboss.as.ejb3.concurrency.ContainerManagedConcurrencyInterceptor.processInvocation(ContainerManagedConcurrencyInterceptor.java:104), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:101), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61), org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(SingletonComponentInstanceAssociationInterceptor.java:53), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228), org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304), org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:76), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:43), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61), org.jboss.as.ejb3.timerservice.TimedObjectInvokerImpl.callTimeout(TimedObjectInvokerImpl.java:104), org.jboss.as.ejb3.timerservice.TimedObjectInvokerImpl.callTimeout(TimedObjectInvokerImpl.java:114), org.jboss.as.ejb3.timerservice.task.TimerTask.callTimeout(TimerTask.java:177), org.jboss.as.ejb3.timerservice.task.TimerTask.run(TimerTask.java:149), java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511), java.util.concurrent.FutureTask.run(FutureTask.java:266), java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149), java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624), java.lang.Thread.run(Thread.java:750), org.jboss.threads.JBossThread.run(JBossThread.java:122)]! 
04.04 13:40:00 WARN  [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner: onTimeout: can't delete goods-catalog_04-04-2023_11-06-03.xml, error - [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner.onTimeout(ImportedGoodCatalogCleaner.java:108), sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method), sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.lang.reflect.Method.invoke(Method.java:498), org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374), org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:127), org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:137), org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:34), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53), org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:34), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374), org.jboss.as.ejb3.concurrency.ContainerManagedConcurrencyInterceptor.processInvocation(ContainerManagedConcurrencyInterceptor.java:104), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:101), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61), org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(SingletonComponentInstanceAssociationInterceptor.java:53), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228), org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304), org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:76), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:43), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45), org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288), org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61), org.jboss.as.ejb3.timerservice.TimedObjectInvokerImpl.callTimeout(TimedObjectInvokerImpl.java:104), org.jboss.as.ejb3.timerservice.TimedObjectInvokerImpl.callTimeout(TimedObjectInvokerImpl.java:114), org.jboss.as.ejb3.timerservice.task.TimerTask.callTimeout(TimerTask.java:177), org.jboss.as.ejb3.timerservice.task.TimerTask.run(TimerTask.java:149), java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511), java.util.concurrent.FutureTask.run(FutureTask.java:266), java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149), java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624), java.lang.Thread.run(Thread.java:750), org.jboss.threads.JBossThread.run(JBossThread.java:122)]! 
04.04 13:40:00 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner: onTimeout: deleted 1 files! 
04.04 13:40:00 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner onTimeout finished! 2023-04-04 13:40:00 
Примеры неправильного выставления времени
goods.catalog.imported.directory.clean.time=13
04.04 14:09:04 WARN  [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner: the property "goods.catalog.imported.directory.clean.time" is not a time!
04.04 14:09:04 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner not started because "goods.catalog.imported.directory.clean.time" is empty or can't be parsed!
goods.catalog.imported.directory.clean.time=SIX O'CLOCK
04.04 14:16:26 WARN  [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner: the property "goods.catalog.imported.directory.clean.time" is not valid!
04.04 14:16:26 DEBUG [ru.crystals.ERPIntegration.ejb.ImportedGoodCatalogCleaner] ImportedGoodCatalogCleaner not started because "goods.catalog.imported.directory.clean.time" is empty or can't be parsed!


Рекламные акции

1. Чтобы, сохранять xml-копию импортируемых товаров через веб-сервис, добавьте настройку import.actions.save-to.dir в файле:

  • Windows: {Disk}\Папка_SetRetail10\standalone\configuration\modules\erp-integration\Discounts.properties
  • Linux: /var/lib/jboss/standalone/configuration/modules/erp-integration/Discounts.properties

2. Откройте на редактирование Discounts.properties и добавьте строку с папкой для сохранения копий web-сообщений

import.actions.save-to.dir=<путь к папке>

3. Перезапустите службу сервера SetRetail.

4. Произведите импорт рекламных акций и проверьте результат:

© 1994-2023, ООО «Кристалл Сервис Интеграция».
Все права защищены..

Политика обработки персональных данных