General Discussion & Announcements

 View Only
  • 1.  How Can I track the execution of a program in D3 9.0.0?

    PARTNER
    Posted 12-04-2023 09:41

    Hello,

    I need to track the execution of a program in my system, so I can have the exact diagnostic of its error (See the attachment for the error).

    Error message during my program execution
    Is there a way so I can check all the executed steps of program, so I can find the 'missing' item shown in the attachment? How can I proceed, please?

    Thank you, in advance.

    Regards,
    Luiz Cássio


    ------------------------------
    Luiz Alves
    Analista de Infraestrutura III
    Federacao Interfederativa das Unimeds de Minas Gerais
    Santa Efigênia Belo Horizonte BR
    ------------------------------


  • 2.  RE: How Can I track the execution of a program in D3 9.0.0?

    PARTNER
    Posted 12-05-2023 09:42

    Hi Luis,

    I suspect you are asking this as you do not have access to the source code?

    If you do have the source code; then one way is to search for the display string 'Sair' as one hopes it occurs near to the line trying to manipulate the file and insert a 'DEBUG' statement, and compile. This will cause the execution to drop to debug; at which point you can use the normal debug commands to set an execution window of a few lines and 'step' through the program until the error occurs at which point view the code.

    Another way is to cause the routine to start with a  (D option which will cause the system to drop into debug when such an error occurs; but without source it will be hard to work out what is wrong.

    Perhaps others have ways of examining the p-code; but I've never tried.

    It could be that the file in question is a 'typical' file; by which I mean the dictionary and data levels are of the same name; in which case you could write a routine to scan down your MD for file  or q-pointers where the dictionary of that target file does not have an entry [either a q-Pointer or file-pointer] of the same name. You may get lucky.

    More likely [I suspect] is the file has multiple data levels; perhaps for ageing; and the system is supposed to create and then use an appropriate data level; but cannot find it.

    LIST-FILES may shed a clue too.

    Unless others know some magic tricks; they key here is availability of source code; but I am certain you knew that before asking the question. So I apologise if my answer is a bit simplistic. Therefore, I suspect you are asking how to get an answer WITHOUT source code.

    Not sure if this has been terribly helpful; but ya never know!



    ------------------------------
    David Knight
    Senior Software Engineer
    H3O Business Technologies Limited
    ------------------------------



  • 3.  RE: How Can I track the execution of a program in D3 9.0.0?

    Posted 12-05-2023 09:43

    Hi Luis,

    Have you got the source code for the program/s you are running ?

    If you you can put a  conditional 'DEBUG' statement in the program to check the error.

    D3 Reference Manual (rocketsoftware.com)

    Have a look at this ?

    Regards,

    Hitesh



    ------------------------------
    Hitesh Jani
    Consultant
    Salts Healthcare
    Birmingham HI GB
    ------------------------------



  • 4.  RE: How Can I track the execution of a program in D3 9.0.0?

    PARTNER
    Posted 12-05-2023 12:23

    Maybe run the program with the (e option and step through with the debugger ?



    ------------------------------
    Bryan Buchanan
    Manager
    WebbTide Systems Pty Ltd
    Morayfield QLD AU
    ------------------------------



  • 5.  RE: How Can I track the execution of a program in D3 9.0.0?

    Posted 12-05-2023 12:23

    Hi Luiz-

    I'm not particularly skilled in using D3. In environments like Universe or Unidata, I typically use the debugger to step through the code. Here is a link to an article about D3's debugger that might be insightful to you.

    https://www3.rocketsoftware.com/rocketd3/support/documentation/d3nt/103/refman/index.htm



    ------------------------------
    Eric Santos
    CTO
    Coppersmith Logistics
    El Segundo CA US
    ------------------------------



  • 6.  RE: How Can I track the execution of a program in D3 9.0.0?

    Posted 12-05-2023 14:42

    Hopefully, you can run this program on-the-fly.  Find the error message, then just before it, put something like:
    IF (@LOGNAME = "YOUR LOGIN ID") THEN DEBUG


    Then test the variable that lead to causing this error.



    ------------------------------
    [John] [Israel]
    [Sr. Programmer Analyst]
    [Dayton Superior]
    [Miamisburg] [OH] [USA]
    ------------------------------



  • 7.  RE: How Can I track the execution of a program in D3 9.0.0?

    Posted 12-06-2023 09:57

    Hi Luiz,

    I hope you are well?

    Looking at the error "The data descriptor (file-name in dictionary) is missing", this tells me that;

    1. Your program is executing a sentence which selects data - using dictionaries.
    2. There is a dictionary in your executed sentence which has a problem.
    3. The dictionary that is not known.

    Are you able to edit the program and output the sentence being executed?

    For example;

    CMD = "SELECT VOC F1 F2 F3"

    CRT CMD  ;* output to screen the command being executed.

    EXECUTE CMD

    If you are not able to edit the program, I would suggerst that you LIST DICT {file-name} then list the file with each I-type dictionary that you find.

    If you want to dive into your I-type dictionaries, attribute 17 of the I-type is the date last compiled (I think). It's just a hunch Luiz but I think the problematic dictionary will have failed compilation ... so it won't have attribute 17. Hence, you may find it this way;

    LIST DICT {file-name} WITH F17 = "" USING DICT VOC

    ... assuming that F17 is in the DICT of VOC ... of course.

    I hope this wasn't too geeky Luiz? If you get stuck, you're welcome to reach out and we can screenshare to find the dictionary that throws the error.



    ------------------------------
    Andy MacDonald
    Director
    Rocket Forum Shared Account
    QLD, AUSTRALIA
    ------------------------------



  • 8.  RE: How Can I track the execution of a program in D3 9.0.0?

    Posted 12-07-2023 10:41

    I would start by ensuring that all the files' DICT portions have data portions of the same name specified within them.  Hopefully you're very familiar with the files your application uses.

    That error is saying that your program attempted to open a specific data portion for a file which lacks that data portion.  For example, if you OPEN "ORDERS,PENDING" TO FILE_VARIABLE ELSE ... then the dictionary portion of the file, ORDERS, must also have a data portion, PENDING, specified within it.  If not, you'll get this error.  Any idea what files/data-portions are being opened?  Maybe someone deleted a data portion?



    ------------------------------
    Marcus Rhodes
    marcus1@thinqware.com
    ------------------------------