× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hello everybody!
I need help with CHAIN operation in service pgm.
My srvpgm contains subprocedure that returns some data from file and here 
is code:

    H NOMAIN
    FFILE1     IF   E           K DISK    USROPN
    FFILE2     IF   E           K DISK    USROPN

     /COPY LIB/SRCFILE,SPPROTOS
     ................
     ................
     PgetValue                 B                   EXPORT
     DgetValue...
     D                 PI            15P 2
     D P1                          3A   VALUE
     D P2                          6S 0 VALUE
     D P3                           3A   VALUE
     D P4                          4S 0 VALUE
     D P5                          2S 0 VALUE
     D
     D tmpStruct       DS
     D  FIELD1                          3A
     D  FIELD2                         15A
     D KEYdata         DS
     D  K1                         3A
     D  K2                         6S 0
     D  K3                          3A
     D  K4                         4S 0
     D  K5                         2S 0
      *----------------------------------------------------------
      * FILE1 key list
     C     KEY_F1       KLIST
     C                   Kfld                    K1
     C                   Kfld                    K2
     C                   Kfld                    K3
     C                   Kfld                    K4
     C                   Kfld                    K5

      * FILE2 key list
     C     KEY_F2       KLIST
     C                   Kfld                    K2
     C                   Kfld                    K3
     C                   Kfld                    K4
     C                   Kfld                    K5
     C                   Kfld                    K1
 
      *    Eval key fields
     C                   Eval      K1 = P1
     C                   Eval      K2 = P2
     C                   Eval      K3  = P3
     C                   Eval      K4 = P4
     C                   Eval      K5 = P5
     * Open files
     C                   OPEN      REIAC
     C                   OPEN      ACCBR
 
      *    PROBLEM LINE1 This chain makes data from tmpStruct avaiable
     C     KEY_F2       CHAIN     F2RF2 
 
     C                   if        %FOUND
      *    Define new key values
     C                   move      tmpStruct     KEYdata

      *    PROBLEM LINE2 This chain will retrieve value in VALUE field
     C     KEY_F1       CHAIN     F1RF1
 
     C                   if        %FOUND
     C                   Close     *ALL
     C                   RETURN    VALUE
     C                   EndIf
     C                   EndIf
     C                   Close     *ALL
     C                   RETURN    0
     PgetValue              E

I create srvpgm with crtsrvpgm with EXPORT(*all) and in aditional options 
DFTACTGP(*caller).
I found problem while running program in debug mode and problem is first 
CHAIN operation that does nothing. It doesn't retrieve values of record 
with defined key and %FOUND function returns *ON. Next thing, evaluation 
of KEY_F1 is wrong and then happens error while CHAIN on FILE1. In that 
statement srvpgm throws exception (Decimal data error).

I checked %STATUS after chain on file2 but it's 00000. Everything is 
normal. I even put indicator in psition 71 and it is set to *OFF. There is 
no any evidence of error but error is clearly evident.

Please help.

Igor Bešlić, dipl. ing. rač. 
VOLKSBANK d.d.
OJ Informatika
Zelinska 2, 10000 Zagreb
tel: +385 1 6326422
e-mail: Igor.Beslic@xxxxxxxxxxxx

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.