Вставка данных через gsa-template в atg sql с возобновлением ошибки

В настоящее время я пытаюсь вставить большой объем данных в мой репозиторий через xml (вызов inputFiles в TemplateParser). Однако, когда одна запись генерирует ошибку, как ограничение ключа, больше записей не будет обрабатываться. Я понимаю, что было бы хорошо очистить данные, чтобы плохие строки не вставили, но поскольку я не могу последовательно контролировать наш поднабор данных в тестовых средах, я не могу гарантировать, что таблицы, на которые ссылаются внешние ограничения, будут иметь согласованные данные ,

Если я переношу все содержимое в транзакцию, то никакие записи не будут вставлены, если я оберну их импортовыми элементами, которые они терпят неудачу из-за нулевых ограничений в таблице (элементы импорта пытаются вставить частичные записи). Обертка каждого элемента в его собственной транзакции не задерживает ошибку и вставляет каждую строку до плохой строки, но ничего не происходит после.

Есть ли другой способ, позволяющий возобновить сценарий ошибок при импорте данных в репозиторий? Или способ проверки ограничений в шаблоне gsa перед вставкой?

Файл для справки

<?xml version="1.0" encoding="UTF-8" standalone="no"?>


<transaction>

    
    
    


    
    
    

etc..

0
nl ja de

1 ответы

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

Таким образом, в приведенном выше примере, если поле id vendorSku было skuItem, оператор insert может быть изменен на:


    
    

This way if the file is added multiple times it would update existing records rather then throwing errors because of the duplication. You can also use the tag with the add flag set to true for the same behavior.

0
добавлено