CICS Subprograms - cobol

I have a requirement that states to have a Menu Screen containing 10 options and user can select a option and jump to appropriate screen.I have created a Trans-ID for Menu Screen.Do i need to create Trans-ID for all the 10 options?.I have searched for this type of Requirement and all of them involves creating the Trans-ID for each sub screen so that the screen can be refreshed and return to same screen until user selects to go back to main-screen.
I am new to CICS-COBOL Programming and not sure why we need to create Trans-ID for each screen.Is this the global format or is there any other approach available?

No, you don't need to use a tranid per screen/function in this scenario. You could actually use one transid and even one program in a pseudoconversational style.
You would use a commarea to hold the state of the interaction with the user at the terminal, so when the user picks an option and the next 'leg' of the pseudoconversation invokes the transaction and program again, you can determine in that program what has just been received from the terminal, what to do with it and what response to send back to the terminal. This process simply repeats until the business function completes and you can end with the default menu again.

Related

Deactivate read-only & non-realtime mode in firebase [duplicate]

Read-only & non-realtime mode activated to improve browser performance
Message pops up in my project and I'm unable to delete the nodes as well
Also I read this https://groups.google.com/forum/#!topic/firebase-talk/qLxZCI8i47s
Which states :
If you have a lot of nodes in your Firebase (say thousands), we need to create a new element for each node and modern browsers simply have limitations of how many DOM elements you can add to a page
It says:
To resolve this problem, don't load your Firebase Dashboard at the root of your Firebase, but instead load it lower down in the hierarchy
I do not get what it means
How do I get back to my Realtime Dashboard?
If you want to delete a high level node when this is activated, I recommend doing this.
Open up a text editor and type in { }. Save this file as "blankJSON.json".
Go to high level node you want deleted and select it, once it opens up and shows you all the nodes that need to be removed, select the three bars at the top right and select "Import JSON", (It would be safe to first "Export JSON" If you don't have backups, in case you make a mistake here). Import the JSON file we created earlier titled "blankJSON".
This will delete all of the data inside.
Once again, I highly suggest you make a backup before doing this, It's extremely easy to make a backup and also it is much easier than you would think to upload this blankJSON to the wrong node and then erasing a bunch of important data.
When it detects that it's downloading too many nodes from your database, the Firebase Console stops using real-time mode and switches to read-only mode. In this mode it requires less work from the browser, so it is more likely that the browser will stay performant.
To get back to realtime mode, you have to go to a location that has fewer nodes. So say that you start loading the database at the root, that means that "pseudo address bar" at the top of the data tree will say:
https://<your-project>.firebaseio.com/
And then will show the list of items. Now click on the URL in that pseudo address bar and change it to:
https://<your-project>.firebaseio.com/<one-of-your-keys>
And hit enter. The data tree will reload with just the node from one-of-your-keys and down and will likely switch to realtime mode again.
Every node key in firebase is a link, you can open a sub-node in a new tab and then edit that sub-node and its children.
Right click on a sub-node you want to edit or delete
Select open link in a new tab
Edit the sub-node in the new tab
1) Click on the Node you want to mass delete
2) Import an empty .json file (just containing curly braces, {} )
3) The node value will be set to null, in other words it is deleted or rather overridden with an empty node!
What you can do is to have an OnClickListener and call the remove value method to your DatabaseReference, like this:
mCart.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View view) {
mDatabaseReference.removeValue();
}
});
I have the same problem... I'm a bit surprised because I though Firebase could easily scale to support huge amount of data (example million users, etc.).
I have a node with 80000 sub-nodes (each object has his own push-id) and I cannot delete or perform any action on it because the real-time doesn't work in Firebase console.
I think the only way to udate or delete the data it's to do it via JAVA code :(
Multiple times trying to load the specific keys can be tiresome. There is a python library that could do this for you easily.
http://ozgur.github.io/python-firebase/
I needed to delete a lot of keys and this helped me do that in one go.
What I do is export the entire tree, edit/add the node I want using an editor, then import the JSON and overwrite the previous node/tree. Problem solved! Risky though 😁

abas-ERP: Command in user menu for specific screen priority

I need a command which calls a screen in a specific priority.
In detail:
I'd like to offer a menu entry to our users were they can simple change the work day calendar in employee data sets and nothing else. I know the correct way would be creating a lower prio screen and grand the user such prio for accessing employees. But these users are allowed to change more than the work day calendar! I just like to reduce the fields in screen for a more simple recording and maintaining of absence from work.
So they should be able to view and change the normal employee screen but with a special command (from command view) the should open the same employee but with reduced number of field. Simple: separated screens for different use cases.
I believe I have to solve it by providing a service program in infosystem or similar but I'd like to ask you for a better way of solution before.
In this case you can work with different screen context modes.
Please keep in mind, that screen modes works just within new screen descriptions.
(almost) Every element in the screen editor has an option called visibility scope (Sichbarkeit -> Geltungsbereich)
For example you could define a scope called EXTENDEDPERMISSION.
Then the element would be only visible, when you set the screencontext in FO to "EXTENDEDPERMISION"
..: set one screen context
.formula P|maskkontextfop = "EXTENDEDPERMISION"
..
..: set some screen contexts
.formula P|maskkontextfop = "VIEW1 VIEW2 LIGHTVIEW"
You can set the screen context in every event you'd like to.
For more infos you can search for "maskkontextfop" in the online help.
But keep in mind, that the user still can access all variables over the dynamic selection as long as you grant them the permission to these fields!
So if you really want, that a user (under no circumstances) gains access to some fields, you'll have to configure the right permissions.

Delphi 2010 - does PID exists? If Yes then show PID in listbox else remove PID from listbox

I'm working on an application that is running multiple external programs at once.
After creating the process, I store each title of the process, the PID number and the handle inside a list box.
While process exists i want to show it in that list box.
If the process is ended i want the list box to automatically remove the reference.
Any idea?
Thank you
CreateProcess() returns a HANDLE to the new process. When the process terminates, that HANDLE is signaled. As long as you leave the HANDLE open, you can check the process's status whenever you want. You can use GetExitCodeProcess() in a loop/timer, or wait on the HANDLE using WaitForSingleObject() or related. Once the process exits, you will be able to detect that, so you can then close the HANDLE and remove the entry from your list.
I finally did it! If any one else is looking for an answer here is what i did:
I allow users to select multiple files for processing and display them in the first listbox
for each listbox item, I create a process that contains the unique name of the file and move the name of the file that is being processed in the second listbox. This is done by using a timer that cycles the whole listbox. After creating the process, i move the filename from listbox1 to listbox2
using a function I got the handle for the process that I just created. For each file, I store the filename,PID and handle in the second listbox.
I use the second timer that ticks at 1000ms to cycle threw all listbox2 items and compare processhandle with existing process list.If process exits then do nothing, else remove listbox2 item by string.
This trick does not require threads. I tested this with 100 files that created 100 unique process. I hope I managed to help anyone who is looking for a solution like I did.

access a watch item even if not debugging step by step in the Delphi IDE

Is it possible to see the list of watches with the realtime value when I am not at a breakpoint?
I have defined an integer Mycounter in the public section of a TDatamodule.
I add it to the Watch list.
I can see its value being updated in the watch list only as I am debugging line by line or I am at a rbeakpoint.
Is there a way to keep seeing its value in the watch list even when the control goes back to the VCL thread (=when I press F9)?
As David said, a watch is not possible but you could get close by adding a data breakpoint to your variable and have it dump it's value to the Event Log each time it changes.
Steps
Get the address of the variable you like to track.
Add a databreakpoint
Open the Event Log debugging window
Get the address of a variable
I have used the variable I in my example. As per your example, this should be #Mycounter
Adding the Data Breakpoint
Use the address of the variable
Uncheck the Break checkbox
Evaluate the expression PInteger($45622C)^
Log the result
Viewing the results
There is no way to do this from the IDE. Watch evaluation requires all the threads in the process to be suspended so that the debugger can read the memory and perform the evaluation.
If you want to see values being refreshed without the debugger breaking, you would most likely have to add code to your application to instrument the values of interest. For example, add code to your application output debug messages (e.g. OutputDebugString(), CodeSite etc.) whenever the value changed. You would of course need to view the information in a separate viewer.

Unity3D and the iPhonekeyboard?

I'm trying to figure out how to use the iPhoneKeyboard function in Unity3D. I want to be able to run a function when a user hits the button "OK" in the keyboard. I just simply can't figure this out.
The second question in this matter is how I can change the "OK" to "Search"?
check out IPhoneKeyboard.Open in the Reference.. there is one example
After you can process the user input using the IPhoneKeybard.done attribute (also one example)

Resources