|
Проблемы с бизнес-процессом Ensemble.
|
|||
---|---|---|---|
#18+
Добрый день! Столкнулся с такой проблемой. Есть класс:Class root Extends (%SerialObject, %XML.Adaptor) { Parameter XMLIGNORENULL = 1; Property idmc As %String(XMLNAME = "id_mc"); Property idlab As %String(XMLNAME = "id_lab"); }Так же есть класс запроса к бизнес процессу:Class XMLInRequest Extends Ens.Request { Property FileName As %String; Property Request As root; }В бизнес-сервисе происходит вызов бизнес процесса. #dim root as root Set reader = ##class(%XML.Reader).%New() set sc=reader.OpenStream(pInput,"literal") do reader.Correlate("root","root") do reader.Next(.root,.sc) do reader.Close() #dim Request as XMLInRequest=##class(XMLInRequest).%New() set Request.FileName=pInput.Attributes("Filename") set Request.Request =root set sc=..SendRequestAsync("XMLInBPL",Request) Бизнесс процесс создан при помощи Bisness Process Editor (BPL). В нем первым делом нужно сохранить в переменную контекста значение из request.Request.idmc Создается элемент Assign, у которого Property=context.Sender, а Value=request.Request.idmc (Переменная Sender в конексте бизнесс-процесса создана). При запуске продукции (при поступлении входящего сообщения) получаем ошибку: авторERROR <Ens>ErrException: <PROPERTY DOES NOT EXIST>zS1+3^XMLInBPL.Thread1.1 *%Process,XMLInRequest -- logged as '08 May 2014' number 1 @' Set request.%Process = context.%Process' В zS1+3^XMLInBPL.Thread1.1: Set context.Sender=request.Request.idmc Set request.%Process = context.%ProcessТ.е. присвоение значения вроде бы происходит, но падает на том, что у request нет Property %Process. Хотя он объявлен как Class XMLInRequest Extends Ens.Request Ничего не могу понять. Подскажите в чем может быть проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 11:54 |
|
Проблемы с бизнес-процессом Ensemble.
|
|||
---|---|---|---|
#18+
AlexShiryaev, Но ведь ни у Ens.Request, ни у его предка Ens.MessageBody нет свойства %Process. Откуда взялась следующая строка? Set request.%Process = context.%Process Можете Xdata BPL из бизнес-процесса выложить? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 12:19 |
|
Проблемы с бизнес-процессом Ensemble.
|
|||
---|---|---|---|
#18+
AlexShiryaevТ.е. присвоение значения вроде бы происходит, но падает на том, что у request нет Property %Process. Хотя он объявлен как Class XMLInRequest Extends Ens.RequestПроверьте у класса Ens.Request или его предков наличие свойства %Process . ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 12:23 |
|
Проблемы с бизнес-процессом Ensemble.
|
|||
---|---|---|---|
#18+
Александр Коблов, XData BPL [ XMLNamespace = " http://www.intersystems.com/bpl" ] { <process language='objectscript' request='XMLInRequest' response='Ens.Response' height='2000' width='2000' > <context> <property name='KDLSender' type='%String' > <parameters> <parameter name='MAXLEN' value='32000' /> </parameters> </property> <property name='Sender' type='%String' > </property> </context> <sequence xend='538' yend='678' > <assign name="context.Sender=request.idlmk" property="context.Request" value="request.Request.idmc" action="set" xpos='562' ypos='219' /> <rule name='KonvertSender' rule='LMKGetKDLSenderID' resultLocation='context.KDLSender' ruleContext='request' xpos='541' ypos='434' > </rule> <call name='CheckOrder' target='CheckOrder' async='1' xpos='557' ypos='536' > <request type='CheckOrderRequest' /> <response type='CheckOrderResponse' /> </call> </sequence> </process> } ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2014, 12:33 |
|
|
start [/forum/topic.php?fid=39&fpage=21&tid=1556894]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 384ms |
0 / 0 |