Hallo Spirou,

arbeitest Du mit einer geschlüsselten oder ungeschlüsselten DataQueue?

Um an die Sender-Informationen heranzukommen muss beim erstellen der DataQueue der Parameter Absender-ID hinzufügen (SENDERID) auf *YES gestellt werden.

Beim Empfangen der DataQueue erhälst Du in der Optionalen Parameter-Gruppe 1 die Sender-Informationen.

Zur Ausgabe kannst Du eine Datenstruktur mit folgendem Aufbau verwenden:
D DS_SndInf DS Sender-Information
D SI_BytRet 7P 0 Bytes Returned
D SI_BytAvail 7P 0 Bytes Available
D SI_Job 10 Job-Name
D SI_User 10 Benutzer
D SI_JobNo 6 Job-Nr.
D SI_CurUsr 10 Current User Prof.

Die Länge der Sender-Informationen gibst Du am besten wie folgt an:
%Size(DS_SndInf)

Bei dieser Variante musst Du alle DataQueue-Einträge lesen, die passenden herausfiltern und die restlichen zurückschreiben.

Um Dein Problem zu lösen, würde ich eine geschlüsselte DataQueue vorschlagen. Im Schlüssel werden das Benutzer-Profil und/oder die Firma hinterlegt.
Dazu kannst Du eine Datenstruktur verwenden.
z.B.:
D DQKEY DS
D DQUser 10
D DQFirma 3 0

Beim QRCVDTAQ gibst Du dann im Key den hinterlegten Schlüssel an und empfängst nur alle Dataqueue Einträge mit diesem Schlüssel (Parameter Key Order = 'EQ')

D PGMSTA SDS
D §§USER 254 263

C eval DQUser = §§User
C eval DQFirma = FIRNR

C callp (E) QRCVDTAQ(DQName : DQLib : DataQueue
C DQDatLen : DQDATA : *Zeros: Data / Wait Time
C 'EQ' : %Size(DQKey): DQKey : Key
C %Size(DS_SndInf): DS_SndInf) Sender

Ich hoffe, das hilft Dir etwas weiter

Birgitta