Author |
Message
|
Bartez75 |
Posted: Wed Nov 25, 2009 6:42 am Post subject: Regex pattern error - broker 6.0 |
|
|
 Voyager
Joined: 26 Oct 2006 Posts: 80 Location: Poland, Wroclaw
|
------
Update to this: I got info that this pattern is wrong somehow so I will maybe get a new xsd schema. I will put here the correct one when I get it.
----------
I have a pattern in the message type:
Logical properties-> Simple Type -> BaseType = xs:string
Logical properties-> Value Constraints -> Pattern = ^\d{0,18}
It is MRM/XML. Broker is 6.0
The value in the element of that type = 333
The error that I got is: Field does not match the pattern value
However it validates in other tools that can validate xml against xsd schema.
The message set is generated form the xml schema.
Any comments on this might be helpful. Thanks in advance. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Nov 25, 2009 3:29 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Do you mean to validate XML or MRM with this pattern.
I can understand it validating it in XMLNSC.
However consider that MRM is a fixed length positional parser (CWF) (on steroids XML).
What you have defined is however essentially a variable length field.
Now think about what you are trying to do and go do it the right way!.
And BTW if that field was to be the definition of an SAP Material number consider changing the definition to String min/max length 18. SAP has particular exits that allow Alphanumeric content...
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
kimbert |
Posted: Thu Nov 26, 2009 1:29 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
MRM is a fixed length positional parser (CWF) (on steroids XML). |
Not true. MRM can handle almost any type of non-XML data using the 'CWF' and 'TDS' physical formats.
It *can* also handle XML data using the 'XML' physical format, and it uses a proper XML parser internally. But don't do that, because XMLNSC is *much* faster and better at the job. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Nov 26, 2009 12:57 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
kimbert wrote: |
Quote: |
MRM is a fixed length positional parser (CWF) (on steroids XML). |
Not true. MRM can handle almost any type of non-XML data using the 'CWF' and 'TDS' physical formats.
It *can* also handle XML data using the 'XML' physical format, and it uses a proper XML parser internally. But don't do that, because XMLNSC is *much* faster and better at the job. |
Sorry and mea culpa for not mentioning the TDS parser. I nearly never use it and that might have been my bias...
Looking at the validation that Bartez75 alluded to, and if the only physical format is XML, should his constraint not validate?
@Bartez75, can you post the content of the full exception list and root list for the message not validating? _________________ MQ & Broker admin |
|
Back to top |
|
 |
kimbert |
Posted: Thu Nov 26, 2009 2:51 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
I'm waiting for Bartez75 to respond. I think the ^ should be removed from the data pattern. |
|
Back to top |
|
 |
Bartez75 |
Posted: Fri Nov 27, 2009 2:28 am Post subject: |
|
|
 Voyager
Joined: 26 Oct 2006 Posts: 80 Location: Poland, Wroclaw
|
Hi
Here is a fragment that is interesting in that case of the Root and Exception List:
Code: |
Root: (
(0x01000000):Properties = (
(0x03000000):MessageSet = 'FQ5BVLG002001'
(0x03000000):MessageType = 'DIFFUSION'
(0x03000000):MessageFormat = 'XML1'
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 819
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = TRUE
(0x03000000):CreationTime = GMTTIMESTAMP '2009-11-27 10:15:29.110'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 2
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
(0x03000000):ContentType = ''
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'P10.QL.G.D.ODIN.IN.DIFFUSION.SIR'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 273
(0x03000000):CodedCharSetId = 819
(0x03000000):Format = 'MQSTR '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 2
(0x03000000):Persistence = 1
(0x03000000):MsgId = X'414d51204652565535505532202020204adee17a215d5614'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'MVW0 '
(0x03000000):UserIdentifier = 'xxxx '
(0x03000000):AccountingToken = X'160105150000006d2f97c47ac0bd57ffb875950da3000000000000000000000b'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = '\Broker\rfhutil\rfhutilc.exe'
(0x03000000):PutDate = DATE '2009-11-27'
(0x03000000):PutTime = GMTTIME '10:15:29.110'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x0100001B):MRM = (
(0x01000013):HEADER = (
(0x0300000B):CGMONA = '09'
(0x0300000B):NMBRO = 'TBN-FAB01 '
(0x0300000B):LIBRO = 'NOUVELLE DIFF FAB '
(0x0300000B):DOMDST = 'AI'
(0x0300000B):IDDST = 'TESTPDF'
(0x0300000B):TYPDST = 'I'
(0x0300000B):CPLTEC = 'FAB-C95-01(09FREF)'
(0x0300000B):COACBU = 'RE7V77Y '
(0x0300000B):DTHMOD = '20091028112329'
(0x0300000B):VERSDAT = '1.0'
(0x0300000B):DTHDTR = '20091125104249'
(0x0300000B):CODDECL = 'MAVI'
(0x0300000B):NUFAD = '34FC002875S'
(0x0300000B):TYPEAV = 'AE'
(0x0300000B):CGDEC = ' '
(0x0300000B):NULGD = ' '
(0x0300000B):COEMD = ' '
(0x0300000B):TYPDIF = 'FAB'
(0x0300000B):IDDEM = '0000000971-TBN-FAB01 '
(0x0300000B):TYPFIL = 'PREV'
(0x0300000B):NBVI = 1
(0x0300000B):CGDST = '09'
(0x0300000B):FMTDST = 'PDF'
(0x0300000B):NBCOPY = 1
(0x0300000B):NUMSEQ = '2009-11-25T10:42:49.195722'
(0x0300000B):STOVE = 'V'
)
(0x01000013):VILST = (
(0x01000013):VI = (
(0x01000013):GEN = (
(0x0300000B):NUFAV = '34FC002875'
(0x0300000B):LTCONT = 'S'
(0x0300000B):CGMONV = '59'
(0x0300000B):LIMOD = 'EURO3 6X4 TRACT MD11'
(0x0300000B):DTSPEC = '20090525'
(0x0300000B):DTISWCB = '20090525'
(0x0300000B):DTISWCH = '20090525'
(0x0300000B):DTPMIA = '20090610'
(0x0300000B):NARTI = ' '
(0x0300000B):NCCLI = '1672147'
(0x0300000B):CTMCL = 'UNITED NATIONS'
(0x0300000B):DTRDCB = '20090506'
(0x0300000B):DTRDCH = '20090506'
(0x0300000B):FILVI = 'M'
(0x0300000B):PBIVI = 'N'
)
(0x01000013):LGMLST = (
(0x01000013):LGM = (
(0x0300000B):NULGM = 'AD'
(0x0300000B):DTPEV = '20090506'
(0x0300000B):NUENV = 1
(0x0300000B):LILGM = 'SUIVI ETAPES FLUTI'
(0x0300000B):RGSEN = '333'
) |
Code: |
(0x01000000):ParserException = (
(0x03000000):File = '/build/S600_P/src/DataFlowEngine/ImbRootParser.cpp'
(0x03000000):Line = 551
(0x03000000):Function = 'ImbRootParser::parseNextItem'
(0x03000000):Type = 'ComIbmMQInputNode'
(0x03000000):Name = 'P10OdinBWFlowsIn/P10OdinBWflow1#FCMComposite_1_10'
(0x03000000):Label = 'P10OdinBWFlowsIn.P10OdinBWflow1.Q1 - ODIN DIFFUSION InputQueue'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 2
(0x03000000):Number = 5902
(0x03000000):Text = 'Exception whilst parsing'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'Root'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'MRM'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '4d442020000000020000000000000008ffffffff0000000000000111000003334d515354522020200000000200000001414d5120465256553550553220202020... (data of len truncated)'
)
(0x01000000):ParserException = (
(0x03000000):File = '/build/S600_P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbParser.cpp'
(0x03000000):Line = 445
(0x03000000):Function = 'MtiImbParser::parseFirstChild'
(0x03000000):Type = 'ComIbmMQInputNode'
(0x03000000):Name = 'P10OdinBWFlowsIn/P10OdinBWflow1#FCMComposite_1_10'
(0x03000000):Label = 'P10OdinBWFlowsIn.P10OdinBWflow1.Q1 - ODIN DIFFUSION InputQueue'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 5285
(0x03000000):Text = 'ImbRecoverableException caught from worker->parseNext.'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'P10OdinDiffusionBWMsgset'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '1'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'XML1'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'DIFFUSION'
)
(0x01000000):ParserException = (
(0x03000000):File = '/build/S600_P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbValueValidator.cpp'
(0x03000000):Line = 1383
(0x03000000):Function = 'MtiImbValueValidator::validatePattern'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 5393
(0x03000000):Text = 'One or more Message Validation failures have occurred.'
(0x01000000):ParserException = (
(0x03000000):File = '/build/S600_P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbValueValidator.cpp'
(0x03000000):Line = 1383
(0x03000000):Function = 'MtiImbValueValidator::validatePattern'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 5369
(0x03000000):Text = 'Field does not match the pattern value'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '464^RGSEN'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '333'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = '^\d{0,18}'
)
|
I got info that this was not validating in the xml validation tool so no wondering it was not validated in the broker.
I will try now without '^' or something else or maybe I will get a correct xsd. |
|
Back to top |
|
 |
Bartez75 |
Posted: Fri Nov 27, 2009 2:37 am Post subject: |
|
|
 Voyager
Joined: 26 Oct 2006 Posts: 80 Location: Poland, Wroclaw
|
I have just removed '^' and it is validating now.
However I don't know if this is what they (sender application) want to have as a pattern so I will have to confirm this. |
|
Back to top |
|
 |
sirsi |
Posted: Sat Nov 28, 2009 6:45 pm Post subject: |
|
|
Disciple
Joined: 11 Mar 2005 Posts: 177
|
using or not using caret shouldnt matter, as rest of regular expression expects only digits(\d)... |
|
Back to top |
|
 |
|