문제

I have a map which has two input fields with data types X(6),9(8) I store these two values in the below variables in my cobol-cics program.

01 SCREEN-DATA.        
05 ACTNUM PIC X(6). 
05 AMOUNT PIC 9(8). 

Now i am passing these two values to cobol-db2 program:

CALL UPDATEPROG USING ACTNUM,AMOUNT.

In my update program:

LINKAGE SECTION.                                                 
01 DEPOSITPARAMS.                                                
05 ACTNUM PIC X(6).                                           
05 AMOUNT PIC 9(8).                                           
PROCEDURE DIVISION USING DEPOSITPARAMS.                          
MOVE ACTNUM TO ACCOUNT-NUMBER.

Where ACCOUNT-NUMBER is my host variable of the table i've created. It is fine in running the program but in my map when i entered the details and pressed enter, i am getting an abend. When i gave some static value like: MOVE 071250 TO ACCOUNT-NUMBER. It's working fine and i was able to update,retrieve values from the table using queries.What might be the cause for this abend. Please help me with this problem

These are my host variables created in DCLGEN

01  DCLACCOUNT-MASTER.                            
10 ACCOUNT-NUMBER       PIC X(6).                   
10 ACCOUNT-HOLDER       PIC X(20).                  
10 ACCOUNT-BALANCE      PIC S9(8)V9(2) USAGE COMP-3.
10 LAST-UPDT-DATE       PIC X(10).                  
10 OPENNING-DATE        PIC X(10).     

Another observation i made is, wherever i am using the ACTNUM variable i.e., the linkage section variable. I am getting abend

도움이 되었습니까?

해결책

I'm guessing you mean ASRA for the abend code.

Look in the core dump, if you have compiled with the TEST option you should have a formatted dump showing your Working-Storage, Local-Storage, and Linkage Section variables and their values. I suspect you have non-numeric values in your AMOUNT field.

In CICS, the core dump in written to the CESE Transient Data Queue, often mapped by the CICS Systems Programmer to the CEEMSG DD of the CICS region. Do a find on CEE3845 to find the top of a core dump, this is the message ID of the Language Environment message containing a detailed description of what went wrong and caused the abend.

다른 팁

Verify that the COBOL definition of the area in which you READ your map actually matches the area returned by the map. I suggest running CEDF and look carefully at the area that the READ MAP populates at the return from the call. I suspect you will find a mismatch.

In your code, add this:

LINKAGE SECTION.
01 DEPOSITPARAMS.
05 LINKAGE-REF S9(4) COMP-3.

05 ACTNUM PIC X(6).
05 AMOUNT PIC 9(8).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top