-
Notifications
You must be signed in to change notification settings - Fork 618
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configuration parameter ValidateUnorderedGroupFields not working when the field order of a repeating block nested within another repeating block #668
Comments
Could you please clarify a little? Could you supply a small test case that shows what you want to achieve? |
I have corrected the issue title. Scenario
Expectation In Fix ‘Trade capture report’, Field ‘NoPartyID’ is a nested repeating block and need to validate the field order of this block’s fields. Input Messages:
8=FIXT.1.1|9=269|35=AB|34=3|49=FIX.CITUWP|52=20230822-09:38:37.747|56=FGW|11=20230822:030837:37.000607|38=2000000|40=2|44=1.37|54=1|55=USD/VND|59=1|60=20230822-09:38:37.000607|100=102|167=FXSWAP|1300=101|30001=1|453=1|448=TR2.CITUWP|447=D|452=53|555=2|1788=Leg1|587=M9|1788=Leg2|587=W3|10=037| 8=FIXT.1.1|9=277|35=AB|34=3|49=FIX.CIYLWP|52=20230822-09:38:38.584|56=FGW|11=20230822:030838:38.000579|38=2000000|40=2|44=1.37|54=1|55=USD/VND|59=1|60=20230822-09:38:38.000579|100=102|167=FXSWAP|1300=101|30001=1|38004=0|453=1|448=TR2.CIYLWP|447=D|452=53|555=2|1788=Leg1|587=M9|1788=Leg2|587=W3|10=156|
When nested repeating group order is correctly ordered in dictionary file, 8=FIXT.1.1|9=1047|35=AE|49=PTGW|56=PTG1.OMG|34=5|52=20230822-09:38:42.441486|1128=9|1180=1|1181=9|1350=8|1352=N|571=L3nSnDAiMb|1003=TS85VE4S8PON|820=Z3nPnQQU0V|1123=0|856=0|150=F|487=0|573=0|828=0|60=20230822-09:38:41.657144|32=2000000|423=20|31=1.37|15=USD|574=4|55=USD/VND|167=FXSWAP|555=2|1788=Leg1|587=M9|603=4|637=1.444|1074=2888000|1788=Leg2|587=W3|603=4|637=2.814|1074=5628000|552=1|54=2|1427=E0Fg2W57LtbL|453=7|448=TR2.CITLWP|447=D|452=53|2376=22|448=CITLWP|447=D|452=59|802=2|523=Y|803=100|523=549300YJ6EN00VRYN266_LEICITI_1|803=84|448=FXRQ|447=G|452=73|448=535400MQZIPRVPDDZK70|447=N|452=72|448=CIYLWP|447=D|452=56|802=2|523=Y|803=100|523=549300YJ6EN00VRYN266_LEICITI_1|803=84|448=CITLWP|447=D|452=13|448=CIYLWP|447=D|452=20|1115=1|1444=2|37=OS0Fg2av9va3M|11=20230822:030839:39.000341|38=4000000|194=1.444|711=2|311=USD/VND|1045=1|311=USD/USD|1045=1|120=VND|1907=2|1903=535400MQZIPRVPDDZK70TS85VE4S8PONL0|1906=5|2411=L0|1903=535400MQZIPRVPDDZK70TS85VE4S8PONL1|1906=5|2411=L1|30001=1|100=102|1300=101|1924=0|1193=C|768=1|769=20230822-09:38:41.657144|770=1|10=019| When repeating group order is invalid in dictionary file, expected session reject won't receive. 8=FIXT.1.1|9=1049|35=AE|34=3|49=PTGW|52=20230822-10:08:24.406377|56=PTG1.OMG|1128=9|15=USD|31=1.37|32=2000000|55=USD/VND|60=20230822-10:08:24.015434|100=102|120=VND|150=F|167=FXSWAP|194=1.444|423=20|487=0|571=L3nSnDAiMp|573=0|574=4|820=Z3nPnQQU0h|828=0|856=0|1003=TS85VE4S8POU|1123=0|1180=1|1181=23|1193=C|1300=101|1350=22|1352=N|1924=0|30001=1|552=1|54=2|1427=E0Fg2W57Ltbl|453=7|448=TR2.CITLWP|447=D|2376=22|452=53|448=CITLWP|447=D|452=59|802=2|523=Y|803=100|523=549300YJ6EN00VRYN266_LEICITI_1|803=84|448=FXRQ|447=G|452=73|448=535400MQZIPRVPDDZK70|447=N|452=72|448=CITUWP|447=D|452=56|802=2|523=Y|803=100|523=549300YJ6EN00VRYN266_LEICITI_1|803=84|448=CITLWP|447=D|452=13|448=CITUWP|447=D|452=20|1115=1|1444=2|37=OS0Fg2av9va3Y|11=20230822:033821:21.000853|38=4000000|555=2|1788=Leg1|587=M9|603=4|637=1.444|1074=2888000|1788=Leg2|587=W3|603=4|637=2.814|1074=5628000|711=2|311=USD/VND|1045=1|311=USD/USD|1045=1|768=1|769=20230822-10:08:24.015434|770=1|1907=2|1903=535400MQZIPRVPDDZK70TS85VE4S8POUL0|1906=5|2411=L0|1903=535400MQZIPRVPDDZK70TS85VE4S8POUL1|1906=5|2411=L1|10=154| |
IIRC each repeating group (regardless if nested or not) will be parsed using the dictionary. Maybe I'll find time to create a unit test, or maybe you could do that? Which data dictionary do you use? The default one that ships with QFJ? Which FIX version? |
Additional context
When ValidateUnorderedGroupFields is set to "Y", fix message with one group field, order within a repeating block is getting validated.
But, field order within a repeating block that is situated inside another repeating block is not getting validated.
Tried to validate the field order of 'NoPartyIDs' in FIX trade capture report.
The text was updated successfully, but these errors were encountered: