Question
· Feb 9, 2022

ERROR #5540: SQLCODE: -104 Message: Field

Hi,

Management Portal SQL Interface

ERROR #5540: SQLCODE: -104 Message: Field 'QT.Fehlermeldung.parameter' (value '<params wert=\"\" feldName=\"Modul.name:...') failed validation

I've checked the syntax with some public tools with adjusted Tablename "Fehlermeldung" -> `Fehlermeldung`. It seems to be valid, but cache does not accept it.

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.','')

Best regards

RY

 
Spoiler
Product version: Caché 2018.1
$ZV: Cache for Windows (x86-64) 2018.1.4 (Build 505_1U) Thu May 28 2020 10:01:40 EDT
Discussion (9)2
Log in or sign up to continue

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.
 

Hi,

The error occurs when i try to import a sql dump file with

    d $SYSTEM.SQL.SetDefaultSchema("QT",$SYSTEM.SQL.DefaultSchema(),1)
    d $SYSTEM.SQL.DDLImport("MySQL","VM","c:\temp\meh.sql","C:\temp\all.log",,,";")

You can see the summary in my previous post under spoiler. It is the only error.

After that I tried to run the query in the sql interface and there is the same error with a little more detail.

A working query for comparison. I can not see much difference...

INSERT INTO "Fehlermeldung" VALUES (1001020,'qsDataFieldCode.isInvalid','10','Der Wert ''<wert>'' des Datenfeldes <feldName> \"<feldBezeichnung>\" ist kein zulässiger Code des Schlüssels <schluesselName> (<schluesselBezeichnung>).','<params wert=\"\" feldName=\"Modul.name:Bogen.name:Feld.name\" feldBezeichnung=\"Feld.bezeichnung\" schluesselName=\"Schluessel.name\" schluesselBezeichnung=\"Schluessel.bezeichnung\" />','','Leistungserbringer','','','Leistungserbringer','Als Template-Meldung kann diese auch auf modifizierte Daten der DAS zutreffen.','')
Class QT.Fehlermeldung Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {VM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = Fehlermeldung ]
{

Property idFehlermeldung As %Library.Integer(MAXVAL = 2147483647, MINVAL = -2147483648) [ SqlColumnNumber = 2 ];

Property name As %Library.String(MAXLEN = 58) [ SqlColumnNumber = 3 ];

Property fkFehlerart As %Library.String(MAXLEN = 2) [ SqlColumnNumber = 4 ];

Property meldung As %Stream.GlobalCharacter [ SqlColumnNumber = 5 ];

Property parameter As %Library.String(MAXLEN = 229) [ SqlColumnNumber = 6 ];

Property hilfetext As %Stream.GlobalCharacter [ SqlColumnNumber = 7 ];

Property verursacherWennDAS As %Library.String(MAXLEN = 18) [ SqlColumnNumber = 8, SqlFieldName = verursacher_Wenn_DAS ];

Property verursacherWennVST As %Library.String(MAXLEN = 18) [ SqlColumnNumber = 9, SqlFieldName = verursacher_Wenn_VST ];

Property verursacherWennBAS As %Library.String(MAXLEN = 37) [ SqlColumnNumber = 10, SqlFieldName = verursacher_Wenn_BAS ];

Property verursacherWennVPB As %Library.String(MAXLEN = 18) [ SqlColumnNumber = 11, SqlFieldName = verursacher_Wenn_VPB ];

Property verursacherErläuterung As %Library.String(MAXLEN = 193) [ SqlColumnNumber = 12, SqlFieldName = verursacher_Erläuterung ];

Property verursacherWennBASindirekt As %Library.String(MAXLEN = 18) [ SqlColumnNumber = 13, SqlFieldName = verursacher_Wenn_BAS_indirekt ];

/// 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 ];

Storage Default
{


idFehlermeldung


name


fkFehlerart


meldung


parameter


hilfetext


verursacherWennDAS


verursacherWennVST


verursacherWennBAS


verursacherWennVPB


verursacherErläuterung


verursacherWennBASindirekt


^QT.FehlermeldungD
FehlermeldungDefaultData
sequence
^QT.FehlermeldungD
^QT.FehlermeldungI
^QT.FehlermeldungS
%Library.CacheStorage
}

}

Best regards

RY

Hi, That's strange. It's auto-generated by mysqldump

CREATE TABLE "Fehlermeldung" (
  "idFehlermeldung" int(11) DEFAULT NULL,
  "name" varchar(58) DEFAULT NULL,
  "fkFehlerart" varchar(2) DEFAULT NULL,
  "meldung" text DEFAULT NULL,
  "parameter" varchar(229) DEFAULT NULL,
  "hilfetext" text DEFAULT NULL,
  "verursacher_Wenn_DAS" varchar(18) DEFAULT NULL,
  "verursacher_Wenn_VST" varchar(18) DEFAULT NULL,
  "verursacher_Wenn_BAS" varchar(37) DEFAULT NULL,
  "verursacher_Wenn_VPB" varchar(18) DEFAULT NULL,
  "verursacher_Erläuterung" varchar(193) DEFAULT NULL,
  "verursacher_Wenn_BAS_indirekt" varchar(18) DEFAULT NULL
);