Interaktion QUERY bei Datenbank StoredProcedure Attribut „NAME“

  • Beitrag
    vikl
    Teilnehmer
    Hallo zusammen,

    bei diversen XML Steuerungdokumenten für z.B. Select bei Datenbanken kann ich im XML Tag <SELECT> das Attribut NAME frei wählen und sinnvollerweise so belegen, dass ich bei evlt weiteren Merge des Ergebnisses darin einen Identifier reinpacke, über den ich dann einen Match durchführe.

    Leider fehlt mir diese Möglichkeit beim Steuerungdokument für den Call einer StoredProcedure auf einer Datenbank. Dort ist nämlich das Attribut NAME für die tatsächliche Bezeichnung der StoredProcedure vorgesehen.

    Frage: Wie kann ich dieses Problem umgehen (nur mit TC Bordmitteln)?

    Beispiel UseCase
    <CALL NAME=“dbo.beispielStoredProcedure“> –> hier wäre Super sowas wie OWNID=“132465464″
    <RETURN TYPE=“Int“></RETURN>
    <PARAM MODE=“in“ TYPE=“String“ NAME=“p_test“>INSERT</PARAM>
    </CALL>

    Liefert z.B.
    <CALL NAME=“dbo.beispielStoredProcedure“>
    <RETURNVALUE>78452356456</RETURNVALUE>
    </CALL>

    Problem: Die neue ID/Returnvalue bekomme ich nicht mehr verbunden zur OWNID=“132465464″ (evtl nur außer nur über xslt Position zu gehen)

     

    0
    0
Ansicht von 1 Antwort (von insgesamt 1)
  • Antworten
    Torsten Uhr
    Betrachter
    Die Möglichkeit, Referenzen im XML Steuerungsdokument durch alle Adaptertypen hindurchzuleiten, gibt es leider aktuell noch nicht. Diese Funktion steht aber bereits in unserem Backlog. Bis zur Umsetzung können Sie sich mit drei Workarounds behelfen.

    1. Erzeugen Sie vor dem Prozeduraufruf (CALL) noch eine Tabellenabfrage gegen eine Tabelle, die kein Ergebnis liefert:
        <SELECT NAME="132465464"> 
           <COLUMN NAME="spalte"/>
           <FROM TABLE="tabellenname"/>
           <WHERE>spalte = ?<VALUE TYPE="Int">nicht vorhandener Wert</VALUE></WHERE>
        </SELECT>
        <CALL ...>
        ...
    1. Weisen Sie das benötigte Datum im Verarbeitungsprozess vor der Datenbankabfrage einer Variablen zu. Sie können dann diese Variable als Parameter an die Transformation weiterleiten, welche das Ergebnis der Prozedurabfrage weiter verarbeitet.
    2. Nutzen Sie die Merge-Aktivität um das Originaldokument mit dem benötigten Datum und das Ergebnis des Prozeduraufrufs zusammenzuführen. Über die Position der Daten (XSLT-Funktion position()) können die zugehörigen Daten gefunden werden.

    Ihr TRANSCONNECT-Team

    1
    0
Ansicht von 1 Antwort (von insgesamt 1)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.