Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[C#] Export file from AS400 output queue

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als ik momenteel een file out een output queue op de AS400 wil exporteren kan ik ofwel kiezen uit een omslachtige procedure via het AS400 scherm zelf, ofwel voor een bijna even omslachtige procedure via de IBM System i Client Access. Het plan borrelde dus in me op om een applicatie te schrijven waarbij ik zeer snel files uit een output queue kan exporteren als Excel files of textfiles.

Via de IBM System i programmers toolkit heb ik ondertussen enkele zaken gevonden en lukt het me om te connecteren met een dataqueue.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            InitializeComponent();
            AS400System AS400 = new AS400System();
            DataQueue data = new DataQueue();
            cwbx.StringConverter stringCvtr = new cwbx.StringConverter();
            string sReadString;

            AS400.Define("MIJN.AS400.COM");
            AS400.UserID = "GEBRUIKER";
            AS400.Password = "WACHTWOORD";
            AS400.Connect(cwbcoServiceEnum.cwbcoServiceDataQueues);


            data.LibraryName = "LIBZX";
            data.QueueName = "OUTQZ";
            data.system = AS400;


Ik heb de alle functies overlopen maar het lijkt alsof er geen enkele bestaat waarbij je een specifieke file kan exporteren of raadplegen binnen een output queue. Veel zoekwerk op Google bracht me ook niet verder, dus is mijn vraag of zo een functie wel bestaat en of dit wel mogelijk is?

  • Viper®
  • Registratie: Februari 2001
  • Niet online
De functie Read() werkt niet ?

http://publib.boulder.ibm...400.access.DataQueue.html

Volgens mij lees je dan een regel uit je queue. Die kan je dan in een stringbuilder stoppen oid.

Hier een java voorbeeld

http://techtipsjava.blogs...0-dataqueues-in-java.html

[ Voor 19% gewijzigd door Viper® op 17-12-2014 16:09 ]


Verwijderd

Topicstarter
Ik zou dan eerder opteren voor de functie Peek(). In dat Java voorbeeld gebruiken ze wel een DataQueueEntry, iets wat ik in C# niet meteen terug vindt.

Verwijderd

Topicstarter
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            AS400System AS400 = new AS400System();
            DataQueue data = new DataQueue();
            cwbx.StringConverter stringCvtr = new cwbx.StringConverter();
            string sReadString;

            AS400.Define("MIJN.AS400.BE");
            AS400.UserID = "GEBRUIKER";
            AS400.Password = "WACHTWOORD";
            AS400.Connect(cwbcoServiceEnum.cwbcoServiceDataQueues);

            System.Console.WriteLine("About to connect");
            data.LibraryName = "LIBRARY08";
            data.QueueName = "OUTQ08";
            data.system = AS400;
            System.Console.WriteLine(AS400.IPAddress);
            // ONA8442
            Object oKey = new Object();
            oKey = stringCvtr.ToBytes("ONA8442");
            System.Console.WriteLine(oKey.ToString());
            sReadString = stringCvtr.FromBytes(data.Peek(-1,out oKey));
            MessageBox.Show(sReadString);


Als error krijg ik nu dat die queue niet te vinden is binnen die librarie. Nochtans klopt dit, zou het echter kunnen dat deze methode niet dient om print spooled files te gaan uitlezen?