[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Sep 2004
    Beiträge
    129

    *SRVPGM in VB.NET nutzen???

    Hallo!

    Gibt es eine Möglichkeit Serviceprogramme der AS400 in VB.NET zu nutzen?

    Kenne mich mit VB nicht aus, aber meine *SRVPGMs sind in Ordnung.

    Lg Peter
    Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    die einfachste Lösung ist eigentlich immer das Programm oder die Prozeduren im Service-Programm entweder als SQL-Stored Procedures (wenn keine Rückgabewerte erforderlich sind) oder als SQL-User Defined Functions (UDF) zu registrieren.

    Der Aufruf erfolgt dann über einen SQL-CALL (Stored Procedure) oder einen Dummy-Select bei UDFs.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Sep 2004
    Beiträge
    129
    Danke für die schnelle Antwort!

    Das heißt also für jede exportierte Funktion eine UDF erstellen, oder?
    Hm, das ist eine gute Idee, warum kommt man da selber nicht drauf ...

    Vielen Dank!
    Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!

  4. #4
    Registriert seit
    Sep 2004
    Beiträge
    129
    So, jetzt hab ich aber noch das Problem, dass die UDF mit Status MCH3402 abstürzt wenn ich sie aus dem interaktiven SQL aufrufe. Anscheinend wird auf ein nicht mehr vorhandenes Objekt verwiesen.
    Wenn ich in die UDF debugge hab ich aber sehrwohl den gewünschten Wert im Rückgabestring. Die Funktion stürzt erst nach dem RETURN.
    Hab auf diese Weise schon einige UDFs gemacht, aber dieses Problem ist mir neu.

    Was kanns da bitte haben??
    Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    machst Du irgendwelche Schweinereien mit Aktivierungsgruppen, RCLACTGRP oder RCLRSC in Deiner Prozedur?

    MCH3402 titt z.B. dann auf, wenn RCLRSC Dateien in Service-Programmen geschlossen werden und diese Service-Programmer durch Aktivierungsgruppe *CALLER in der Default-Aktivierungsgruppe laufen. Die Dateien geschlossen und das Service-Programm bekommt das nicht mit, d.h. auch bei der Prüfung mit %Open meint das Service-Programm dass die Datei noch geöffnet ist und beim Write knallt's dann.

    ... zumindest hat mich dieser Sachverhalt neulich ein paar Tage gekostet, nachdem der Kunde darauf bestand, dass alles mit Aktivierungsgruppe *CALLER erstellt werden muss.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  6. #6
    Registriert seit
    Sep 2004
    Beiträge
    129
    Hallo!

    Das Serviceprogramm ist zwar mit *CALLER gewandelt und läuft in der DFTACTPRP, aber darin ist alles in SQL gelöst, also keine READS/WRITES, und es gibt kein RCLRSC. Die SQLs laufen zwar unter COMMIT, aber das sollte eigentlich kein Problem sein.

    Kann es sein weil ich die UDF mit *InLR=*ON und dann RETURN verlasse?
    Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!

  7. #7
    Registriert seit
    Sep 2004
    Beiträge
    129
    Also das min *INLR wars nicht ...
    Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!

  8. #8
    Registriert seit
    Sep 2004
    Beiträge
    129
    Ich habs!

    Danke Birgitta, das mit der Aktivierungsgruppe war schuld!

    Ist es klug das UDF-RPG jetzt mit ACTGRP(*NEW) zu wandeln, oder mit ACTGRP(PGMNAME) ??
    Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    UDF's MÜSSEN mit *CALLER laufen und dürfen selber keine Commit's enthalten !
    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
    Sep 2004
    Beiträge
    129
    Hm, Commits sind nur im Serviceprogramm das von der UDF benutzt wird.
    In der UDF sind eigentlich nur 5 Zeilen Code.

    Warum müssen UDFs mit *CALLER gewandelt werden?
    Ich meine, wie wirkt sich das aus?
    Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!

Similar Threads

  1. LibraryList mit VB.NET auslesen
    By DoktorNo in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 16-07-08, 14:13
  2. Wie ein 3582 Tapelibrary ohne BRMS nutzen?
    By cs400_de in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 14-01-08, 12:55
  3. Tape von einer AS400 von anderer AS400 aus nutzen?
    By hs in forum IBM i Hauptforum
    Antworten: 15
    Letzter Beitrag: 07-11-06, 19:28
  4. Problem ODBC und VB.NET
    By Marsman in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 11-07-06, 10:50
  5. Freigaben auf anderen Servern nutzen
    By ltsrole in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 21-10-04, 16:20

Berechtigungen

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