Hello
Older professionals can confirm it, but this operation ordering premise is older than the InterSystems product. It comes from the origin of MUMPS. So I don't think it's something InterSystems can or should change.
When I discovered this feature of language, I decided that all my codes involving numerical calculations should always be formatted with "(", determining precedence, even if precedence is natural to language. And I do it that way regardless of language.
For example, in COS this calculation would be natural:
Write !,10 + 10 * 10 USER> 200
But I would always code like this:
Write !,( 10 + 10 ) * 10 USER> 200
This way the code will be readable even for "Non MUMPS" coders, and this piece of code could even be migrated to other languages without problems.
Yone, hello.
I imagine a lot of scenarios regarding your problem, but I'm missing some details, so I ask?
- You can only send messages within the period informed, but collect/prepare messages throughout the day, more or less like this: [SOAP inbound] (24/7) -> [BPL] (24/7) -> [ SOAP Operation] [4am to 8am, daily]?
- Your problems with mirror servers are because they must be in different timezones and the schedule doesn't mirror each server's local time.
I will base my premise on the above conditions, if not, please skip the next few lines.
Try to split the operation into two separate processes:
- A process to collect and store the original messages in a temporary table.
[SOAP inbound] (24/7) -> [BPL] (24/7) [to write temporary table]
- Another process which will be a 24/7 ensemble service but which only triggers messages based on a time analysis in UTC format and not local time.
[InboundAdapter] (24/7) -> [BPL] (24/7) -> [ analyzes the condition relating to 4am to 8am UTC and sends messages to ] -> [SOAP Operation] (24/7)
Hope this helps.
I crated a table and use your data:
CREATE TABLE Fehlermeldung (
Field01 VARCHAR(32000),
Field02 VARCHAR(32000),
Field03 VARCHAR(32000),
Field04 VARCHAR(32000),
Field05 VARCHAR(32000),
Field06 VARCHAR(32000),
Field07 VARCHAR(32000),
Field08 VARCHAR(32000),
Field09 VARCHAR(32000),
Field10 VARCHAR(32000),
Field11 VARCHAR(32000),
Field12 VARCHAR(32000)
)
Use the data you provided:
INSERT INTO "Fehlermeldung" VALUES (
1001021,
'qsDataFieldOutOfRange',
'10',
'Der Wert ''<wert>'' des Datenfeldes <feldName> \"<feldBezeichnung>\" ist <artDerAbweichung> als <feldBound>.',
'<params wert=\"\" feldName=\"Modul.name:Bogen.name:Feld.name\" feldBezeichnung=\"Feld.bezeichnung\" artDerAbweichung=\"Ein Wert aus [größer, kleiner]\" feldBound=\"Minimal- oder Maximalwert des Feldes je nach Wert in artDerAbweichung\" />',
'',
'Leistungserbringer',
'',
'',
'Leistungserbringer',
'Als Template-Meldung kann diese auch auf modifizierte Daten der DAS zutreffen.',
'')
And the write is ok.
The class structure created:
///
Class User.Fehlermeldung Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {desenv}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = Fehlermeldung ]
{
Property Field01 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 2 ];
Property Field02 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 3 ];
Property Field03 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 4 ];
Property Field04 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 5 ];
Property Field05 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 6 ];
Property Field06 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 7 ];
Property Field07 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 8 ];
Property Field08 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 9 ];
Property Field09 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 10 ];
Property Field10 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 11 ];
Property Field11 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 12 ];
Property Field12 As %Library.String(MAXLEN = 32000) [ SqlColumnNumber = 13 ];
/// Bitmap Extent Index auto-generated by DDL CREATE TABLE statement. Do not edit the SqlName of this index.
Index DDLBEIndex [ Extent, SqlName = "%%DDLBEIndex", Type = bitmap ];
}
Check the definition of the fifth property if there any unusual restriction.
Or, if you could, post the class definition here.