Difference between 8x and 9x coding standards

 4 Replies
 0 Subscribed to this topic
 17 Subscribed to this forum
Sort:
Author
Messages
srikanth
Advanced Member
Posts: 28
Advanced Member
    Hello,

    I came across several instances where some custom code which works in 8x doesnt work in 9x applications.

    Here is one example of the same

    In 8x application custom code i can pair the API 850-FIND-NXT with 860-FIND-NXTRNG API.
    This code works in 8x. But when i move the same code to 9x application this code doenst work.
    So i have to code the correct pairing of the APIs.

    Recently i came across one more such case.
    Here are the details of the same.

    The following sample code which works in 8x doesnt work in 9x.

    move xxx to db-xxx.
    PERFORM 850-FIND-BEGRNG-BENSET1.
    PERFORM 2040-PARA
    UNTIL (BENEFITS-NOTFOUND)


    2040-PARA
    ---------

    910-AUDIT0-BEGIN.
    move xxx to db-xxx.
    840-MODIFY-BENSET1.
    830-DELETE-BENEFITS.
    920-AUDIT-END.

    860-FIND-NXTRNG-BENSET1.

    2040-END.


    The above code works fine in 8x but when i execute the same code in 9x i get the following error.
    File DEV/BENEFITS
    tsFindNextRngDBRec error is file position not valid for nxt/prv range find.


    This error is due to the transaction APIs 910- and 920- in the benefits loop.

    If I move these two transactions apis before 850-BEG-RNG and after perform 2040-para i m not getting this error.

    Probably this is aslo one constraint in 9x applications.

    Looking at these examples i feel there might be some more differences/constraints in 9x applications when compared to 8x.

    If anyone know about these differences please let me know.

    Thanks in advance.


    Srikanth

    Selva
    Basic Member
    Posts: 8
    Basic Member
      Sri,

      I think the problem has nothing to do with API's. Could you please check the values set for DB-XXX fields. I suspect that the problem is caused by using same Index BENSET1 for BEGRNG and MODIFY. Try using different index for MODIFY
      srikanth
      Advanced Member
      Posts: 28
      Advanced Member
        Selva,

        Thanks for your reply.

        The question is that the same code work without any issues in 8x but not in 9x. I have seen many programs which use same index in BEGRNG and MODIFY and they all work without any issues.

        The above code only gives an error when executing in 9x applications.

        --srikanth
        Selva
        Basic Member
        Posts: 8
        Basic Member
          Can you give some standard lawson programs which has problems and some which does not ?.
          srikanth
          Advanced Member
          Posts: 28
          Advanced Member
            Standard programs doesnt have this kind of coding. The program opens the transaction state in the begining and ends it in the last.

            The problem is only with the custom programs in 9x env.