Всем спасибо, но все решения не слишком подходят для моего случая. Сделал все по-своему. А проблема загрузки была в следующем...
Загружаемый документ - это набор таблиц. Написанный экстрактор получился довольно сложным. Чтобы понять главную сложность при загрузке документа можно рассмотреть упрощенный пример. Пусть документ содержит 2 поля.
F1 = 10
F2 = 5
При загрузке через экстрактор получаются готовые для укладывания
в ODS/CUBE данные вида
K1 K2 K3 K4 10
K1 K2 K3 K4 5
1. Далее документ изменили, вследствие чего удалили значение 5. Теперь в документе находится
F1 = 10
Экстрактор возвратит
K1 K2 K3 K4 10
Это означает, что потребуется на стороне BW выполнять сканирование уже сохраненных данных всего документа и генерации сторнирующих проводок.
2. Документ изменили, удалив 10. То есть сам документ существует, но экстрактор не возвращает ни одной записи.
3. Документ удален - экстрактор не возвращает ни одной записи, но ведь надо провести удаление и в BW каким-то образом
4. Документ удален и вновь создан - экстрактор возвращает записи вновь созданного документа, но ведь надо корректно удалить те поля, которые были предварительно сохранены в BW для старой версии документа, а для этого надо как-то передать сам факт проведенного удаления.
и т.п.
Вроде бы все не так сложно, но когда начинаешь искать решение, еще столько всего вылезает!
Решение писать не буду, очень уж все нетривиально и громоздко, но работет.
|
|