Notesdxlimporter

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#1
Всем привет!
Вот что случилось... есть импорт таблички при помощи NotesDXLImporter.
Под версией 8.5 работает.
Под 7.хх вываливается в ошибку DXL IMPORTER OPERATION FAILED
Как победить?

вот фрагмент кода
Код:
		Call Me.importer.SetInput( Me.stream )
Call Me.importer.SetOutput (db )

Me.importer.ReplicaRequiredForReplaceOrUpdate = False
Me.importer.DocumentImportOption = DXLIMPORTOPTION_CREATE
Call Me.importer.Process
Call Me.stream.Close
ошибка на предпоследней строке
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 203
24
38
Киев
ToxaRat.com
#3
NickProstoNick
проинсталь нотес клиент, просто нужных DXML схем в клиенте нету, а если их нету то и вывернуть в XML не удастся
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#4
NickProstoNick
проинсталь нотес клиент, просто нужных DXML схем в клиенте нету, а если их нету то и вывернуть в XML не удастся
Клиент инсталленый.

Версия dtd 8.5 ;) (это я в логе нашел)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 433
351
homepage.mac.com
#6
можно рискнуть и отрезать ДТД...
потом попробовать импортнуть
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#7
NickProstoNick
свезло то как ;)
у меня дизайнер 8.5 вообще отлетает намертво, ждем 8.5.1
это в смысле с сообщением типа "Platform... чего-то там" ?

можно рискнуть и отрезать ДТД...
потом попробовать импортнуть
Прошу прощения! С этого места по подробней можно?
Я с ДХЛ не работал до недавно
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 433
351
homepage.mac.com
#8
вот так вот указ версия:
<!DOCTYPE database SYSTEM 'xmlschemas/domino_7_0_3.dtd'>
<database xmlns='http://www.lotus.com/dxl' version='7.0' maintenanceversion='3.0'

никто не мешает заменить 8.5 на указ.
потому отличия м.б. незначительные (в DTD) в случ. с 8.5
но лучше - при экспорте, использовать DTD от 7-ки (он указ. в экспортере), понятно - что данный ДТД должен присут. в каталогах Нотеса (обычно - он там есть, от предыдущ. версий)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
34
Kiev, Ukraine
#10
а если не проверять валидность?.. не катит?

Read-write. Indicates that if a DTD is specified in the XML declaration statement, it should be used to validate the input XML.
Defined in NotesDXLImporter
Data type Integer
Syntax
To get: option% = notesDXLImporter.InputValidationOption
To set: notesDXLImporter.InputValidationOption = option%

Legal values
VALIDATE_NEVER (0) Do not try to validate.
VALIDATE_ALWAYS (1) Validate the input.
VALIDATE_AUTO (2) (Default) If the DTD is specified, validate the input; otherwise, do not validate.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#11
Akupaka
Не думал об этом. попробую - отпишусь. Только вопрос... а какой DTD будет использоваться?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
34
Kiev, Ukraine
#12
Akupaka
Не думал об этом. попробую - отпишусь. Только вопрос... а какой DTD будет использоваться?
гы :) если VALIDATE_NEVER, то никакой. вот только, возможно, будет ошибка импорта, если импортер наткнется на сложную неизвестную структуру...
грубо говоря, качество результата я не гарантирую ;)
ошибку, к стати, можно отловить в другом свойстве - .Log
и еще глянь .ExitOnFirstFatalError

к стати! еще камешек в огород lmike :)
если заменить документ определений ДТД, то (скорее всего) ХМЛ документ не пройдет по нему валидацию, особенно, если в нем содержатся те элементы, которые изменились между версиями документов определений.

я помню, мы на младших версиях когда импортили в 6-ку док из семерки, то просто брали ДТД семерки и ложили к 6-ке, она нормально хавала описания. но! некоторые вещи ИБМовцы меняли более жестко (у себя в коде), и подкладыванием ДТД оно просто не решалось. пришлось шерстить ДТД искать разницу (благо они упомянули об этом в самих ДТД словом deprecated ?) и приводить документ к оптимальному виду (либо парсером, либо XSLT).
например, между 6 и 7 была разница в записи таблиц в РТ-полях. потом еще на что-то натыкались, но я уже не помню...
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 785
42
35
Киев
#13
к стати! еще камешек в огород lmike wink.gif
если заменить документ определений ДТД, то (скорее всего) ХМЛ документ не пройдет по нему валидацию, особенно, если в нем содержатся те элементы, которые изменились между версиями документов определений.
Ну с этим ничего страшного не произошло :)
У меня простой импор. пока все работает ;)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 433
351
homepage.mac.com
#14
Akupaka - съел ;)
Ну с этим ничего страшного не произошло ;)
У меня простой импор. пока все работает :)
я оговривался, что в несложных случ. - всё пролезет, и указал "правильный" способ - экспорт с указанием "нижнего" ДТД