Alle Objekte in einem Planergebnis

Das Ergebnis eines Planes ist immer ein Planergebnisdokument mit einem einzelnen Objekt, zu welchem dann über (auch verschachtelte) Detailpläne beliebig viele Unterobjekte ausgegeben werden können.

Gibt es mehr als einen Treffer für die Abfrage des Masterplans, wird für jedes Objekt ein eigenes Planergebnisdokument generiert.

Es ist demzufolge nicht ohne weiteres möglich, alle Ergebnisobjekte in einem per Transformation erstellten Zieldokument z.B. als Tabelle auszugeben.

Um dies doch zu erreichen kann man aber den Master als Dummy-Abfrage definieren und die eigentliche Abfrage im ersten Detailplan des Masters ausführen und erhält so ein entsprechendes Ergebnis.

Im nachfolgenden Beispiel mit einer Abfrage für Postgres wird ein Statement ohne WHERE-Klausel verwendet. Andere Datenbanken benötigen eine andere Schreibweise (Oracle: select 'dummy' as dummy from dual).

<ButtonMasterDetailDocument>
    <MasterRecord xmlElementName="MasterAlsDummy">
        <DatabaseQuery>
            <InternalAlias>moe_cardo_db</InternalAlias>
            <BaseQuery>
                select 'dummy' as dummy;
            </BaseQuery>
        </DatabaseQuery>
        <Detail xmlElementCollectionName="Gemeinden">
            <Independend xmlElementName="Gemeinde">
                <DataExcecutionPlan>
                    <Filter>
                        <SingleComparison compareBehavior="CompareStringsCaseInSensitiv">
                            <ColumnName>titel</ColumnName>
                            <Is>Like</Is>
                            <ValueRef key="gemeindename"/>
                        </SingleComparison>
                    </Filter>
                    <OperatesOn>
                        <DatabaseDatasource>
                            <InternalAlias>moe_cardo_db</InternalAlias>
                            <BaseQuery>
                                SELECT * FROM kanaldaten.nt_gemeinde
                            </BaseQuery>
                        </DatabaseDatasource>
                    </OperatesOn>
                </DataExcecutionPlan>
            </Independend>
        </Detail>
    </MasterRecord>
</ButtonMasterDetailDocument>

Das Ergebnis liefert für dieses Beispiel alle entsprechenden Gemeinden. Diese können dann entsprechend in einem Dokument ausgegeben werden.

<MasterAlsDummy>
    <dummy>dummy</dummy>
    <Gemeinden>
        <Gemeinde>
            <id>14272130</id>
            <titel>Großdubrau</titel>
            <bemerkung>KREIS: Bautzen</bemerkung>
            <ersteller>kanaldb</ersteller>
            <erstellt>2012-05-31T18:56:02.898</erstellt>
            <bearbeiter>kanaldb</bearbeiter>
            <bearbeitet>2012-05-31T18:56:02.898</bearbeitet>
        </Gemeinde>
        <Gemeinde>
            <id>14272140</id>
            <titel>Großharthau</titel>
            <bemerkung>KREIS: Bautzen</bemerkung>
            <ersteller>kanaldb</ersteller>
            <erstellt>2012-05-31T18:56:02.898</erstellt>
            <bearbeiter>kanaldb</bearbeiter>
            <bearbeitet>2012-05-31T18:56:02.898</bearbeitet>
        </Gemeinde>
        <Gemeinde>
            <id>14272150</id>
            <titel>Großpostwitz/O.L.</titel>
            <bemerkung>KREIS: Bautzen</bemerkung>
            <ersteller>kanaldb</ersteller>
            <erstellt>2012-05-31T18:56:02.898</erstellt>
            <bearbeiter>kanaldb</bearbeiter>
            <bearbeitet>2012-05-31T18:56:02.898</bearbeitet>
        </Gemeinde>
    </Gemeinden>
</MasterAlsDummy>