[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2013
    Beiträge
    21

    ShowCase und UDF

    Hallo Forum,

    ich habe ein Problem, UDFs mit ShowCase auszuführen.

    Die betreffende UDF ist schon in der DB registriert und lässt sich via SQL-Sitzung in der EMU oder über externen SQL-Client (z.B. Squirrel) ausführen.

    Einfaches Beispiel z.B. via externen SQL-Client:

    select qgpl.checkalptc('TEST', bs700, ' ') from qgpl.baspf700

    Gebe ich es in ShowCase via "New from SQL" ein erhalte ich folgende Fehlermeldung:

    “the parser encountered a syntax error at near token: (“.

    Ich habe schon verschiedene Coding Styles probiert.

    Ich nehme an, man muß die UDF auch in ShowCase registrieren.

    Die Fa. Help/Systems, die das Produkt von IBM (vormals SPSS) übernommen haben, können mir nicht weiterhelfen (haben anscheinend keine Ahnung) und leider auch kein Nutzerhandbuch (obwohl wir soviel Wartung drauf zahlen).

    Hat jemand eine Lösung dazu?

    Alex

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... was hast Du denn mit der UDF vor? Meist kriegt man den Aufruf ins View Layer runtergedrückt.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Da das keine AS/400-Meldung ist, nehme ich mal an dass der interne Parser keine UDF's kennt.
    Du kannst wohl nur Dieters Vorschlag übernehmen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Jun 2013
    Beiträge
    21
    Hallo,

    vielen Dank für die prompte Antwort.

    Die Antwort von Dieter Bender habe ich leider nicht verstanden.

    Vielleicht könnte er mir dazu noch mehr Informationen geben.

    Ich wollte Euch ein paar ScreenShots ranhängen, aber leider läuft der Upload von dieser Webseite immer auf einen Fehler.

    In der UDF ist nur ein RPG-Programm, was anhand der übergebenen Strings Buchungscodes eines Nutzers sucht und diese matched und dann eine 1 oder 0 rausgibt. Das wollte ich mir als SQL-Formulierung verkneifen.


    MFG

    Alex

  5. #5
    Registriert seit
    Jan 2001
    Beiträge
    850
    Hallo,

    vielleicht Bibliotheksliste des Jobs ?
    Oder das qualifizierte Aufrufen mal ändern ?

    Nur so eine Idee
    Gruß
    Michael

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Zitat Zitat von alexk2013 Beitrag anzeigen
    Hallo,

    vielen Dank für die prompte Antwort.

    Die Antwort von Dieter Bender habe ich leider nicht verstanden.

    Vielleicht könnte er mir dazu noch mehr Informationen geben.

    Ich wollte Euch ein paar ScreenShots ranhängen, aber leider läuft der Upload von dieser Webseite immer auf einen Fehler.

    In der UDF ist nur ein RPG-Programm, was anhand der übergebenen Strings Buchungscodes eines Nutzers sucht und diese matched und dann eine 1 oder 0 rausgibt. Das wollte ich mir als SQL-Formulierung verkneifen.


    MFG

    Alex
    ... wenn der String in einem Feld der Tabelle drinsteht, schnöderweise:

    create view as
    select feld1, feld2, feld3, myFunc(feld4) as feldxxx, ...
    from mytable

    Falls sich hinter der UDF auch nur ein Ausdruck verbirgt, der in der View über einen Join und ein case abgebildet werden kann, dann lass die UDF weg, das ist eine Performance Bremse (von üblerer Art als irgendwelche open/close Klamotten).

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695

  8. #8
    Registriert seit
    Jun 2013
    Beiträge
    21

    ShowCase & UDF - Danke erst mal

    Hallo Leute,

    vielen Dank für die Antworten.

    Über den Link von Hr. Fuerchau bin ich auch schon gestolpert.

    Da wir aber nur eine Lizenz auf dem Produktionsrechner haben, habe ich mir den Call verkniffen.

    Die UDF prüft inhaltlich , ob für einen Nutzer in der DB zugelassenen Buchungscodes im übergebenen String ("quasi-Array") übereinstimmen.

    Ich hatte das schon als SQL-Code verwurstet, da die Abfragen aber für mehrere Spalten notwendig sind ist es mit einer UDF auch besser zu bewerkstelligen.

    In meinem 1. post genannter Code ist natürlich nur abgespeckt auf die UDF Funktion, um zu zeigen um was es geht.

    Wie gesagt, über andere Clients oder strsql ist ja alles okay.

    Ich hatte letzte Woche Kontakt zu help/systems: Experte wird informiert. Es gibt aber dafür keine Handbücher.

    Danke erst mal für Eure Bemühungen!

    Ich melde mich, falls sich was ergibt und dort jemand wach wird.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Was Dieters Vorschlag angeht, so kannst du auf der AS/400 eine View erstellen, die die UDF dann bereits enthält.
    Showcase greift dann halt auf die View zu und hat dann keine Probleme mehr mit der UDF:

    create mylib/myview as
    select ... udf(...) as f1, udf(...) as f2, ...
    from myfile

    Dies hat auch den "charmanten" Vorteil, dass du die View jederzeit auch mit ggf. korrigierten oder erweiterten UDF's anpassen kannst ohne bestehende Abfragen damit zu kompromitieren.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Jun 2013
    Beiträge
    21
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Was Dieters Vorschlag angeht, so kannst du auf der AS/400 eine View erstellen, die die UDF dann bereits enthält.
    Showcase greift dann halt auf die View zu und hat dann keine Probleme mehr mit der UDF:

    create mylib/myview as
    select ... udf(...) as f1, udf(...) as f2, ...
    from myfile

    Dies hat auch den "charmanten" Vorteil, dass du die View jederzeit auch mit ggf. korrigierten oder erweiterten UDF's anpassen kannst ohne bestehende Abfragen damit zu kompromitieren.
    Hallo,

    danke für den Tipp. Hätte ich ja auch selbst drauf kommen können!

    Ich habe das nun entsprechend Eures Vorschlag als View implementiert.

    Via STRSQL oder externen SQL Client (Squirrel SQL) funktioniert das prima!

    Leider versagt wieder ShowCase.

    Diesmal mit der Warnmeldung *N.

    Da bleibt mir wohl nichts anders übrig, als die Tabelle im Hintergrund zu erstellen und dann mit ShowCase abzugreifen.

    Danke für die vielen Tipps.

    Alex

  11. #11
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von alexk2013 Beitrag anzeigen
    Diesmal mit der Warnmeldung *N.
    Gibt es vielleicht eine genauere Fehlermeldung zu *N?

Similar Threads

  1. Antworten: 11
    Letzter Beitrag: 18-07-16, 09:49
  2. UDF nicht verwendbar
    By Peder in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 06-12-06, 08:15
  3. udf ohne ergebniss
    By ILEMax in forum NEWSboard Programmierung
    Antworten: 25
    Letzter Beitrag: 18-09-06, 13:39
  4. SQL UDF Function ausführung mit Fehler
    By jakarto in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-07-06, 13:41
  5. SQL UDF Prob mit leeren Feldern
    By HACHIMAN in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 22-05-06, 09:48

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •