1

以下にリストされているグローバルがあり、SQL ストレージを使用していくつかのキャッシュ クラスを作成しようとしています。

^WHEAIPP(1,26,1)=2 
^WHEAIPP(1,26,1,1)="58074^^SMSNARE^58311" 
                2)="58074^59128^MPHILLIPS^59135" 
^WHEAIPP(1,29,1)=2 
^WHEAIPP(1,29,1,1)="58074^^SMSNARE^58311" 
                2)="58074^59128^MPHILLIPS^59135" 
^WHEAIPP(1,93,1)=2 
^WHEAIPP(1,93,1,1)="58884^^SSNARE^58948" 
                2)="58884^59128^MPHILLIPS^59135" 
^WHEAIPP(1,166,1)=2 
^WHEAIPP(1,166,1,1)="58407^^SMSNARE^58420" 
                 2)="58407^59128^MPHILLIPS^59135" 
^WHEAIPP(1,324,1)=2 
^WHEAIPP(1,324,1,1)="58884^^SSNARE^58948" 
                 2)="58884^59128^MPHILLIPS^59135" 
^WHEAIPP(1,419,1)=3 
^WHEAIPP(1,419,1,1)="59707^^SSNARE^59708" 
                 2)="59707^^MPHILLIPS^59910,58000^^^^" 
                 3)="59707^59981^SSNARE^60117,53241^^^^"

グローバルの最初の 2 つの添え字 (Hmo と Keen) は、一意のエントリを作成します。3 番目の添え字 (Seq) には、4 番目の添え字レベル (Seq2) の IppLines の数であるプロパティ (IppLineCount) があります。親クラスである以下のクラス WIppProv を作成します。

/// <PRE> 
/// ============================ 
/// Generated Class Definition 
/// Table:          WMCA_B_IPP_PROV 
/// Generated by:   FXALTMAN 
/// Generated on:   05/21/2012 13:46:41 
/// Generator:      XWESTblClsGenV2 
/// ---------------------------- 
/// </PRE> 
Class XFXA.MCA.WIppProv Extends (%Persistent, %XML.Adaptor) [ ClassType = persistent, Inheritance = right, ProcedureBlock, StorageStrategy = SQLMapping ]

{

/// .HMO 
Property Hmo As %Integer;

/// .KEEN 
Property Keen As %Integer;

/// .SEQ 
Property Seq As %String;

Property IppLineCount As %Integer;

Index iMaster On (Hmo, Keen, Seq) [ IdKey, Unique ];

Relationship IppLines As XFXA.MCA.WIppProvLine [ Cardinality = many, Inverse = relWIppProv ];

<Storage name="SQLMapping"> 
<DataLocation>^WHEAIPP</DataLocation> 
<ExtentSize>1000000</ExtentSize> 
<SQLMap name="DBMS"> 
<Data name="IppLineCount"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>1</Piece> 
</Data> 
<Global>^WHEAIPP</Global> 
<PopulationType>full</PopulationType> 
<Subscript name="1"> 
<AccessType>Sub</AccessType> 
<Expression>{Hmo}</Expression> 
<LoopInitValue>1</LoopInitValue> 
</Subscript> 
<Subscript name="2"> 
<AccessType>Sub</AccessType> 
<Expression>{Keen}</Expression> 
</Subscript> 
<Subscript name="3"> 
<AccessType>Sub</AccessType> 
<LoopInitValue>1</LoopInitValue> 
<Expression>{Seq}</Expression> 
</Subscript> 
<Type>data</Type> 
</SQLMap> 
<StreamLocation>^XFXA.MCA.WIppProvS</StreamLocation> 
<Type>%Library.CacheSQLStorage</Type> 
</Storage> 
}

このクラスは正常にコンパイルされます。次に、以下に示す WIppProvLine クラスを作成し、2 つの間の親子関係を作成しました。

/// Used to represent a single line of IPP data 
Class XFXA.MCA.WIppProvLine Extends (%Persistent, %XML.Adaptor) [ ClassType = persistent, Inheritance = right, ProcedureBlock, StorageStrategy = SQLMapping ]

{

/// .CLM_AMT_ALLOWED node: 0 piece: 6<BR> 
/// This field should be used in conjunction with the Claim Operator field to 
/// define a whole claim dollar amount at which a particular claim should be 
/// flagged with a Pend status. 
Property ClmAmtAllowed As %String;

/// .CLM_LINE_AMT_ALLOWED node: 0 piece: 8<BR> 
/// This field should be used in conjunction with the Clm Line Operator field to 
/// define a claim line dollar amount at which a particular claim should be flagged 
/// with a Pend status. 
Property ClmLineAmtAllowed As %String;

/// .CLM_LINE_OP node: 0 piece: 7<BR> 
/// A new Table/Column Reference that gives the SIU (Special Investigative Unit) 
/// the ability to look for claim line dollars above, below, or equal to a set 
/// amount. 
Property ClmLineOp As %String;

/// .CLM_OP node: 0 piece: 5<BR> 
/// A new Table/Column Reference that gives the SIU (Special Investigative Unit) 
/// the ability to look for claim dollars above, below, or equal to a set amount. 
Property ClmOp As %String;

Property EffDt As %Date;

Property Hmo As %Integer;

/// .IPP_REASON node: 0 piece: 10<BR> 
/// IPP Reason Code   
Property IppCode As %Integer;

Property Keen As %Integer;

/// .LAST_CHG_DT node: 0 piece: 4<BR> 
/// Last Changed Date 
Property LastChgDt As %Date;

/// .PX_DX_CDE_FLAG node: 0 piece: 9<BR> 
/// A Flag to indicate whether or not Procedure Codes or Diagnosis Codes are to be 
/// associated with this SIU Flag Type Entry. If the Flag = Y, then control would 
/// jump to a new screen where the user can enter the necessary codes. 
Property PxDxCdeFlag As %String;

Property Seq As %String;

Property Seq2 As %String;

Index iMaster On (Hmo, Keen, Seq, Seq2) [ IdKey, PrimaryKey, Unique ];

/// .TERM_DT node: 0 piece: 2<BR> 
/// Term Date 
Property TermDt As %Date;

/// .USER_INI node: 0 piece: 3 
Property UserIni As %String;

Relationship relWIppProv As XFXA.MCA.WIppProv [ Cardinality = one, Inverse = IppLines ];

Index relWIppProvIndex On relWIppProv;

//Index NewIndex1 On (RelWIppProv, Seq2) [ IdKey, PrimaryKey, Unique ];

<Storage name="SQLMapping"> 
<ExtentSize>1000000</ExtentSize> 
<SQLMap name="DBMS"> 
<ConditionalWithHostVars></ConditionalWithHostVars> 
<Data name="ClmAmtAllowed"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>6</Piece> 
</Data> 
<Data name="ClmLineAmtAllowed"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>8</Piece> 
</Data> 
<Data name="ClmLineOp"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>7</Piece> 
</Data> 
<Data name="ClmOp"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>5</Piece> 
</Data> 
<Data name="EffDt"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>1</Piece> 
</Data> 
<Data name="Hmo"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>11</Piece> 
</Data> 
<Data name="IppCode"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>10</Piece> 
</Data> 
<Data name="LastChgDt"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>4</Piece> 
</Data> 
<Data name="PxDxCdeFlag"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>9</Piece> 
</Data> 
<Data name="TermDt"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>2</Piece> 
</Data> 
<Data name="UserIni"> 
<Delimiter>"^"</Delimiter> 
<Node>+0</Node> 
<Piece>3</Piece> 
</Data> 
<Global>^WHEAIPP</Global> 
<Subscript name="1"> 
<AccessType>Sub</AccessType> 
<Expression>{Hmo}</Expression> 
<LoopInitValue>1</LoopInitValue> 
</Subscript> 
<Subscript name="2"> 
<AccessType>Sub</AccessType> 
<Expression>{Keen}</Expression> 
<LoopInitValue>1</LoopInitValue> 
</Subscript> 
<Subscript name="3"> 
<AccessType>Sub</AccessType> 
<Expression>{Seq}</Expression> 
<LoopInitValue>1</LoopInitValue> 
</Subscript> 
<Subscript name="4"> 
<AccessType>Sub</AccessType> 
<Expression>{Seq2}</Expression> 
<LoopInitValue>1</LoopInitValue> 
</Subscript> 
<Type>data</Type> 
</SQLMap> 
<StreamLocation>^XFXA.MCA.WIppProvLineS</StreamLocation> 
<Type>%Library.CacheSQLStorage</Type> 
</Storage> 
}

これをコンパイルしようとすると、次のエラーが発生します。

エラー #5502: SQL テーブル 'XFXA_MCA.WIppProvLine %msg のコンパイル エラー: テーブル XFXA_MCA.WIppProvLine には、次のマップされていない (データ マップで定義されていない) フィールドがあります: relWIppProv'

エラー #5030: クラス XFXA.MCA.WIppProvLine のコンパイル中にエラーが発生しました 2.745 秒でコンパイル中に 1 つのエラーが検出されました。

私は何を間違っていますか?

前もってありがとう、フレッド

4

1 に答える 1

0

親子関係がある場合、子クラス (XFXA.MCA.WIppProvLine) のインデックス宣言は次のようになります。

Index iMaster On (Hmo, Keen, Seq, Seq2) [IdKey, PrimaryKey, Unique];

親からのプロパティは必要ありません。追加の子クラスでは、クラス定義で親からのプロパティを宣言しないため、子クラスでは必要ありません

プロパティ Hmo As %Integer; プロパティ Keen As %Integer;

OO の観点からは、子の Hmo を設定することはありません。親の Hmo を設定すると、子は関連しているため、階層の下に適用されます。

于 2012-06-06T17:17:02.170 に答える