powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN: Error deserializing page
3 сообщений из 3, страница 1 из 1
ZEN: Error deserializing page
    #35766075
13-й Пилигрим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, уважаемые.
Второй день бьюсь над такой ошибкой:
ZEN
Error deserializing page: <INVALID OREF>%DeserializePage^%ZEN.Controller.1
Property:
Value:


Имеется следующая страница:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
Include (UConstStrings, UConstGlobal, UPageConst, wwwConst)

Class Dilers.Test Extends %ZEN.Component.page
{

Parameter APPLICATION = "Dilers.Dilers";

Parameter PAGENAME;

Parameter DOMAIN = "Dilers";

XData Style
{
<style type="text/css">
</style>
}

/// This XML block defines the contents of this page.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
<hgroup enclosingStyle="padding: 50 50">
<combobox id="regionsCmb" name="regionsCmb" size="25" onchange="zenPage.GetTowns(zenThis.value);"/>
<combobox id="townsCmb"   name="townsCmb"   size="25" onchange="zenPage.GetStreets(zenThis.value);"/>
<combobox id="streetsCmb" name="streetsCmb" size="25" onchange="zenPage.GetHouses(zenThis.value);"/>
<combobox id="housesCmb"  name="housesCmb"  size="25" />
</hgroup>
<button caption="OK" onclick="zenPage.BtnClick2()"/>
</page>
}

Method BtnClick2() [ ZenMethod ]
{
	d ..GetTowns( 1 )
	d ..GetStreets( 1 )
	d ..GetHouses( 404 )
	q $$$OK
}



Method GetTowns(pIDdistrict) [ ZenMethod ]
{
	s $zt = "Error"
	s DB = ##class(common.ucDB).%New()
	s InData("DISTRICT") = pIDdistrict
	k OutData
	i DB.Execute( 519 , .InData, .OutData) = $$$False
	{
		s $EC = OutData($$$MyERROR)
	}
	k ^PILIGRIM("TEST","Address","GetTowns")
	m ^PILIGRIM("TEST","Address","GetTowns") = OutData
	d ..FillOptions("townsCmb",.OutData)
	q $$$OK
Error
	&js<alert('Error in Server method:\n#($ZCVT($EC,"O","JS"))#')>
	s $EC = ""
	q $$$False
}

Method GetStreets(pIDtown) [ ZenMethod ]
{
	s $zt = "Error"
	s DB = ##class(common.ucDB).%New()
	s InData("TOWN") = pIDtown
	k OutData
	i DB.Execute( 520 , .InData, .OutData) = $$$False
	{
		s $EC = OutData($$$MyERROR)
	}
	k ^PILIGRIM("TEST","Address","GetTowns")
	m ^PILIGRIM("TEST","Address","GetTowns") = OutData
	d ..FillOptions("streetsCmb",.OutData)
	q $$$OK
Error
	&js<alert('Error in Server method:\n#($ZCVT($EC,"O","JS"))#')>
	s $EC = ""
	q $$$False
}

Method GetHouses(pIDstreet) [ ZenMethod ]
{
	s $zt = "Error"
	s DB = ##class(common.ucDB).%New()
	s InData("STREET") = pIDstreet
	k OutData
	i DB.Execute( 521 , .InData, .OutData) = $$$False
	{
		s $EC = OutData($$$MyERROR)
	}
	k ^PILIGRIM("TEST","Address","GetHouses")
	m ^PILIGRIM("TEST","Address","GetHouses") = OutData
	d ..FillOptions("housesCmb",.OutData)
	q $$$OK
Error
	&js<alert('Error in Server method:\n#($ZCVT($EC,"O","JS"))#')>
	s $EC = ""
	q $$$False
}

ClassMethod FillOptions(pCmbxID As %String, ByRef pData As %String) [ ZenMethod ]
{
	s cmbx = %page.%GetComponentById(pCmbxID)
	s cmbx.valueList = "", cmbx.displayList = "", cmbx.value = ""
	s idx = ""
	f {
		s idx = $o(pData(idx)) q:idx=""
		s cmbx.valueList = cmbx.valueList_","_pData(idx)
		s cmbx.displayList = cmbx.displayList_","_idx
	}
	q $$$OK
}

Method %OnAfterCreatePage() As %Status
{
	s DB = ##class(common.ucDB).%New()
	k OutData
	i DB.Execute( 518 , .InData, .OutData) = $$$False
	{
		s $EC = OutData($$$MyERROR)
	}
	k ^PILIGRIM("TEST","Address","GetRegions")
	m ^PILIGRIM("TEST","Address","GetRegions") = OutData
	d ..FillOptions("regionsCmb",.OutData)
	q $$$OK
}

}


Задача простая: сформировать адрес. Т.е. сначала выбирается район, затем населенный пункт, потом улица, и, наконец, дом. Соответственно, в заваисимости от того, что выбрано на предыдущем шаге, заполнятеся соответствующий список.
Вышеуказанная ошибка возникает на этапе формирования списка домов на выбранной улице. Причем только на определенном наборе улиц конкретного города. Было подозрение, что может возникать переполнение в DisplayList combobox'a. Проверил. Получилось, что на самом большом наборе улиц (на котором, собственно и возникает ошибка) - ~1500 наименований, DisplayList равен 31497 символов, т.е. впритык, конечно, но за 32кб не выходит.

Подскажите возможные причины возникновения этой ошибки и пути устранения.
Также буду рад услышать альтернативные варианты реализации данной задачи.
...
Рейтинг: 0 / 0
ZEN: Error deserializing page
    #35766082
13-й Пилигрим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, кстати. Если жестко задать параметры отбора (см. Method BtnClick2()), то все 4 списка заполняются нормально. Но при попытке выбрать другую улицу ошибка выскакивает снова.
...
Рейтинг: 0 / 0
ZEN: Error deserializing page
    #35766128
logist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переполнение переменной. Мы у себя победить так и не смогли.

=Сергей Шутов
ООО Димас, Хабаровск
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN: Error deserializing page
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]