Is there anyway to find which user contribute to an Anylogic model? - simulation

I have an Anylogic model to test. There are some problems about the execution of the model. I want to find the person who made some parts of the model to get a right solution from him/her. Is there any way to find, which user made which part? I couldnt find any relative part in the program.
Best Regards,

what do you mean? You have a model that was done by a team and you want to know who did what code in the model so you go and speak to them directly ? Or you have a resource in your model that works a part (agent) and you want to have an assessment on what did each resource work on?
for the first option:
you can't unless everybody puts their names in the code and descriptions indicating what they changed or if you use a version control tool such as GIT
For the second option:
your question is a bit too broad... but what you can do to verify your model is to use the execution log, which will tell you what resource worked on what parts and for how long.
you turn your execution logs clickin in the database in your projects tab, in the database properties in the log section."Log model execution"
After that you want to check the resource_unit_states_log, which has all the information on what each one of your resources did in details, which answers your question.
There are other ways, but this will be the answer :)

Related

Inserting data in oracle apex (through a form into a table?)

When programming i usually do everything myself and recycle code when needed so for once i decided to try out a development platform to speed up the process so i picked oracle apex- only to find myself suffering with overchoice
Normally if wanted the user to give me some data id just make a form and the data just ends up on my database, not hard.
this isnt what i want to make, this is just for the sake of an example of the way one usually goes about this
another example
But now in oracle apex i dont even know if this is even the right way of asking end user to input data into a table, what should i do if -for example- i just want to make the user run some calculations and then store the results? Is there something specific that apex already has for this or do i do it myself normally
Any tutorials or the names of the functions i need to use would be helpful
I think maybe what you might want is Report with Form.
Its a setup the Page Wizard can make for you which is essentially exactly what you want. You select the table and columns, then it makes one page with a table of all entries, and you can click on an entry or click to make a new entry, and it opens up a form with the relevant page items which you input or edit, and then save.
Maybe a general APEX guide would be best for you since you are so new to it. Because if you know what is possible, then you might find different solutions to problems you have. I dont have a guide to recommend unfortunatelly, but I am sure you can find plenty on google, just make sure the version is correct, it doesent have to be for your exact version(there is a big difference pre 18 and post 18, less so with 19 and 20)
Yes, APEX can be a bit overwhelming in the beginning. Your question is very generic so it is hard to give you a detailed answer. In general, if you have the data in a single record, then a form is the way to go (easiest is to start with report and from). If you need to modify certain column data after user submit, you can do that in processes or computations before submit.
Feel free to ask a question with your specific business requirement - you're pretty sure to get an answer here.

Best practices for a microstrategy workflow

we are a team of 5 people working with microstrategy. We share every role, but we have no worklfow.
Everybody may build or change attributes and change the schema. This leads often to reports not working. Furthermore, there is no "good" documentation. We tried to establish a documentation with sharepoint, but there we also had no workflow.
Originally, we had an old project where for every report all the attributes where constructed newly. So we did not reuse any existing schema object.
Hence, we started a new project. We realized that due to lack of understanding and lack of workflow we make and made a lot of mistakes. We feel that we understand things better slowly (parent child), but the workflow is still horrible.
We have a development project and a lice project, but with the way we are working now, we have a lot of problems. Particularly, the missing version control system is killing us. We perform changes and forget what we did. Hence, we have to use backups, destroying useful work on a given day
So what are best practices to:
* deploy new attributes, facts and reports
* ensure that old reports work after constructing new attributes and facts
* improve documentation
* attributes defined on fact tables and parent-child relationships
Any help is appreciated
MicroStrategy development in a team environment, deploying from development to live, can be very challenging. As you rightly point out, the lack of version control, and unknown interdependencies between objects can cause untold problems. There's no one right answer to this question, but I would suggest the following:
Use all the tools provided by MicroStrategy. When you're deploying from one project to another, don't just drag and drop in Object Manager, create a package. When you deploy that package, make sure you choose to create an undo package, so you can rollback changes if you encounter any problems.
On that note, try to catch these problems in advance. Running Integrity Manager before and after a deployment, even if it's just to generate SQL for the reports, will point out if you've broken anything. On that note:
Create a third environment/project. Call this test/release control, whatever you prefer. Here you can test packages created in Object Manager, to ensure that they have the desired effect, and don't break anything. In effect, this is a dry run for your deployment to live. This environment should be regularly refreshed from live (via project duplication), to make sure it doesn't get in an unexpected state (as the result of a broken Object Manager package import for example).
Over and above that, I can only offer organisational advice. It's not uncommon for one person to take responsibility for schema objects (i.e. facts, attributes, transformations) so that developers don't undo each other's changes. If you have a large project, these objects could be split into functional areas, and individuals assigned.
Documentation is always tricky, but I like to put as much as possible into the object descriptions. This has the advantage of being visible in the Web interface (via tooltips), and included in the automated project documentation, should you choose to generate that. There is obviously the change log functionality for each object, but in my experience, those logs are soon not completed by developers, as saving happens too frequently. Still, if you can get people to populate that, you'd have a head start on understanding the change in your project.
To summarise:
Use Object Manager packages to deploy changes
Test changes with Integrity Manager, to catch any issues as early as possible
Use a release control project/environment, so you're not catching issues in your production environment
Assign responsibility for schema objects to a specific person or persons where possible.

Making User Interface smart in eclipse based applications

I am currently developing a desktop application based on eclipse.
Currently the user needs to perform many redundant actions like doing step A in View 1 then doing step B in View 2 then repeat. I am wondering if anybody knows a solution that records/recommends user actions in eclipse based applications.
Maybe based on the history much like the web based solutions.
Any help would be good.
Thanks.
1)
Do you want to record the user clicks (actions)?
If so eclipse provides a Location tracker, so you can analyse the use cases from the field.
OperationHistoryActionHandler
2)
Do you want to have a smarter way the user uses your tool?
Think about using Wizards. in a Wizard you can have a defined number of execution steps. The user does not need to search some button in a view.
With a Wizard a specific execution flow is very clean and good to understand.
3)
As Jonah mentioned you can use cheatsheets as well.
We once did something similar, where we had a rather big user interface that had heaps and heaps and heaps of different functionalities. Our solution was this:
We abstracted all actions into commands. They were all implemented in a way that they can be cascaded, undone, redone etc. See for example IUndoableOperation
The commands had conditions that made it easy to decide if one could combine these commands.
All commands have an ID and can be easily identified
We then continued to integrate our own run configurations. We added a UI that gave the user the option to cascade multiple commands into one big one. For example, A user wanted to create a new file, apply a template, generate some graphs, export them into a given location etc, the user would create a run configuration adding those commands together.
That way we kept the UI comprehensive but gave the expert user the ability to create their own workflow based on what they do every day.
Our users liked that quite a bit.

How to use OpenNTF's "Workflow for XPages"?

Any tips on getting started using the "Workflow for XPages" on OpentNTF? The documentation is pretty high-level, and mostly about the sample app. Page 24 is the only one with info about using the simple workflow engine. I'm digging into the EmployeeReview.nsf example database, but could use some pointers?
One of my developers evaluated the workflow stuff over the last couple of days. Unfortunately, I cannot share the documentation that came out as a result of her efforts.
So the only way for you by now is to analyse the parts of the sample application.
Find the Simple Workflow Control und Workflow Action controls in the sample application and take a look at the source code.
You will see that the Simple Workflow Control deals with persons and roles. Roles in the context of workflow are not ACL Roles. They are roles that ere defined in the configuration ( like [Manager] )
So you need to have some kind of configuration in your application that contains a person name an the role this person has in your workflow. If this person is a manager for example, you have also to describe, which other persons he/she is managing.
Then, in your workflow steps you describe, in which wf state a specific person is involved, what is the next step and if any mail is send around.
Once ayou have done a bit of analysis, you will be able to create your own sample application.
I also hope that there will be more documentation around. I will provide more detailed information about how to use the wf controls, but I'm going on holiday in the next days. So I do not have much time left, to put a manual together.
But looking at the source code should help to understand how all the stuff works.

SDLC: Managing changes in a 'Closed System' (M1 - ERP)

I am working with a client who has an ERP system in place, called M1, that they are looking to make custom changes to.
I have spent a little bit of time investigating the ERP system in terms of making customizations. Here is a list of what I have found with regards to custom changes:
Custom changes cannot be exported/imported. There is an option in the M1 Design Studio, however, they always appear to be disabled... I tried everything and I couldn't find a mention of it in the help documentation.
You can export a customizations change log (CSV, XML, Excel, HTML) that provides type, name, location and description. In essence, it is a read-only document that provides a list of changes you made. You cannot modify the contents of this log.
Custom form changes made, go into effect for all data sources (Test, Stage, LIVE). In other words, there does not appear an ability to limit the scope of a form change.
Custom field changes must be made in each data source (Test, Stage, LIVE). What's odd here is that if add a field in Test, adjust a grid to display it, subsequently change to LIVE, it detects that the field doesn't exist and negates the grid changes.
I'm unable to find documentation indicating that this application supports version control.
sigh
....
So...
How do I manage changes from an SDLC: ALM methodology and tools standpoint?
I could start by bringing in a change request system to manage pending and completed customizations. But then what? How should changes me managed and released? Put backups of application under source control and deploy when needed?
There might not be a good answer to this question since I'm unable to take advantage of version control and create a separation of environments, but I figured I'd ask in case anybody has had similar experience or worked with M1.
I take it from the lack of answers in two months that your question is unanswerable. SDLC is something you could write a textbook on, or read a textbook on, and not know enough about your environment, other than that probably in order to get hired at your shop, "SDLC" would be a bullet point on the hiring qualifications.
I have no experience with M1, but I am assuming that you're going to have to ask your peers at work for their ideas, because it sounds like you're asking a vertically closed (your shop, your tools, your practices) question that has no exact technical answer.
As for best practices; I suggest you investigate best practices outside your M1 ERP silo and apply them as makes sense to you.
The company I work for also uses M1 erp. We have similar issues regarding version control of the customisations. From what I can tell, all customisations are stored in the M1DD database. You could backup a copy of this database before any major development work as a basic revision control system.
I am familiar with the issue of all changes becoming immediately active in all datasets. This is particularly annoying when you are making changes to a commonly used modules as you don't know how live data will be affected during the development process. One technique I have found useful is to surround untested code with an if statement so it is only executed when I am logged in.
If App.UserID = "MYUSERNAME" Then
'new code here
End If
I would be interested in hearing how you solved this problem.