Replies: 5 comments
-
Hi @heymchri So, as of today this is how the the compile library is detected:
This is how it's worked for all these years as we don't have a way of detecting where objects are created by the compiler directly, which is what it sounds like your custom processing is doing. With that said, we may be able to look for the library from the result of
But, I don't think we can rely on this as the output will be different for different locales. |
Beta Was this translation helpful? Give feedback.
-
@worksofliam thanks for this information. How do you determine the name of the compiled program though? My custom action uses this command:
The name of the actual compiled program is not in this command string - as part of our processing we determine the actual program name from the STMF value. I just tried something like this:
and this indeeds causes the EVFEVENT file from the XA10A00010 library to be used, but of course it also uses 'DUMMY' as the program name... Just a thought: could the logic that detects the compile library be enhanced to look for a CURLIB parameter? If it's not specified on the action command, current logic would be used. CURLIB(*CURLIB) would use the current library, and CURLIB() would use as the current library just for the action, i.e., an override from the actual current library. |
Beta Was this translation helpful? Give feedback.
-
It's the same as the library: either via one of those parameters I mentioned before, or we derive it from the file name.
This is a pretty good idea: if one of those parameters ( I think this issue should be converted to a discussion and a new issue be raised with your idea and the information we both shared. I will mark it as an enhancement. Is that something you can do? |
Beta Was this translation helpful? Give feedback.
-
@worksofliam looking at that code you shared, it looks like this piece of code is the one that gets the actual object name by only keeping the part before the '-', so that makes sense. So you want me to create a new discussion, and also create a new issue with this CURLIB idea? I can certainly do that. |
Beta Was this translation helpful? Give feedback.
-
@heymchri You just create a new issue/feature request, and I will convert this to a discussion. Thanks! |
Beta Was this translation helpful? Give feedback.
-
When compiling a program from a streamfile using the 'standard' compile commands, the program gets created (or not...) into the current library and any errors are retrieved from the EVFEVENT file that gets created in the current library.
However, we have created additional tasks that do some pre-processing and may end up creating the program in another library than the library that was the current library at the time the task was run. E.g., current library in VS Code shows XA10A00008 as the current library.
As part of the pre-processing when running the task, we may end up changing the current library to another library (CHGCURLIB...) or just as part of the compile command, explicitly specify the library name where the program needs to be compiled. However, when fetching errors, they're always fetched from the EVFEVENT file in the library that was the current library at the time the task was run. So, in this situation, if compile errors occur, they're not shown because the wrong EVFEVENT info is retrieved.
Is this expected? Shouldn't the actual library where the program was compiled be used to retrieve the EVFEVENT info?
Here's what the terminal shows:
The program gets compiled into XA10A00010, and that's where the EVFEVENT gets created, but you can see that the errors are retrieved from XA10A00008.
(I have also submitted a related question in the discussions section (https://github.com/orgs/codefori/discussions/2561) regarding the ability to set the curent library through a script, as that would be a way for us to circumvent this issue)
Active extensions
Remote system
Enabled features
Shell env
Variants
Beta Was this translation helpful? Give feedback.
All reactions