ormsolutions / norma Goto Github PK
View Code? Open in Web Editor NEWCore code for Natural Object-Role Modeling Architect, a Visual Studio extension for ORM modeling.
License: Other
Core code for Natural Object-Role Modeling Architect, a Visual Studio extension for ORM modeling.
License: Other
Noticed that it doesn't like the name if there are two underscores in SQL Server. Orm tool thinks these are the same value type even though they are slightly different. Is it possible to make these be considered as different? Maybe by preventing the expanded reading signature option? Another issue is general slowness for large dataset. I wish this didn't use xml in backend b/c it takes a huge amount of time to write the nodes in xml text, and wondering if speeding up the model somehow could be done by using some other tactic.
The error I get is:
Stg_dailydistributionlog has Stg_dailydistributionlog_Mandatorydate.
Model Error: Model 'dbo' contains multiple readings with an expanded reading signature of 'stg dailydistributionlog has stg dailydistributionlog mandatorydate'. Each reading must be unique in the model.
Each [Stg_dailydistributionlog](elementid:0eade8bb-0a4a-415e-bee1-5b5aae708d81) has at most one [Stg_dailydistributionlog_Mandatorydate.](elementid:45af997e-6766-4d49-9530-feb5103ad118) It is possible that more than one [Stg_dailydistributionlog](elementid:0eade8bb-0a4a-415e-bee1-5b5aae708d81) has the same [Stg_dailydistributionlog_Mandatorydate.](elementid:45af997e-6766-4d49-9530-feb5103ad118)Noticed that the generated postgres code in a set is not working. Example:
// This code fails to set constraint for a double
CREATE DOMAIN ULU_Material.Amount AS DOUBLE PRECISION CONSTRAINT ValueTypeValueConstraint8 CHECK (VALUE IN (0.00, 100.00));
// this code works for setting constraint for double
CREATE DOMAIN ULU_Material.Amount AS DOUBLE PRECISION CONSTRAINT ValueTypeValueConstraint8 CHECK(VALUE BETWEEN 0.00 and 100.00);
see stack overflow discussion: https://stackoverflow.com/questions/15525816/adding-check-constraint-for-type-double-precision-in-postgres
Would be nice to add a .gitattributes to turn off autocrlf. This setting has messed the whitespace line feeds because of this, this needs fixing.
Right now is not a good time for this since there are other large branch changes pending.
Hi
Please also see attached Word doc.
VS 2019 Community Edition is installed.
NORMA is installed.
When I go FILE > New >File and then select GENERAL > Object-Role Modeling File I get an error message
(See attached Errors.doc).
Thank you in advance for any help you can provide.
Very respectfully
Barry
650 380 1466
Errors.docx
@mcurland There seem to be 2 ORM metamodels in the repository at:
Can you let me know what the difference is between the 2 and which one is the right one?
Also, I have the impression they are no longer in line with:
Is it correct for me to assum that the ORMCore.dsl
is currently the master meta-model from which the rest derives or is generated?
NORMA does not parse an ellipsis (single character or 3 dots) in the fact editor or reading editor. These are treated like any other character. However, there is also nothing blocking a user from entering these characters on their own. When these ellipses are then combined with the ones we add on the diagram to keep the reading text short you have an ambiguous mess.
The discussed solution to this is to simple use named replacement fields (like an out-of-order n-ary) if there are any embedded ellipses in the formatted reading text.
There has also been a request to highlight each ellipsis character in this case (bold and red). Unfortunately, DSL diagrams does not support rich text in text shapes on the diagram, so using named replacement patterns when this occurs (very rarely) will have to suffice for now.
Is there a plan to eventually support VSCode?
Bonjour Matt,
Verbalizing the ternary fact type reads: "For each subservice user and request type,
that subservice user uses at most one EXPL script to acknowledge the start of execution for that request type."
Why stating "at most one EXPL script" when my understanding is that to have a valid population, all roles are always populated ? why not verbalizing "exactly one EXPL script"?
Long time I wish to ask this question ! Thanks for the feedback ...
Object types are implied by objectification (spanning uniqueness or n-ary fact type that is not explicitly objectified) and by unary fact types (the implicit boolean value).
The solution and orm file were built in VS 2015 with NORMA version 2015-09 CTP from Sourceforge. No projects only one .orm file as a solution item.
Loading the attached files into a bare install of VS2019 CE should lead to reproducing the problem. I selected none of the features, just the bare core, with just the NORMA extension installed on top of this,
norma-issue.zip
Screenshot of exception message:
Likely I missed some (years of) breaking changes? Is there a migration script?
Any relational view table name header that is longer than any of the column text is likely to appear with ellipsis after it. This occurs because the header is anchored to the table shape edges, and the table shape width is determined with a MeasureText call. These cause text measurements to be somewhat inaccurate (in both directions). If the number ends up slightly too small (even 1 pixel) the text will truncate.
Instead of trying to redo text measurement, we can just change the drawing properties of the text so that it cannot clip, wrap, or show an ellipsis. None of these effects should happen anyway because we're sizing the horizontal table width to fully display the contents. The small number of pixels of inaccuracy are not visible to the user, but are enough to trigger text truncation, so we just let them slightly overflow the (non-visible) boundary rectangle into existing padding.
You can test this with a single-fact type model and a relational view (Sport(.Name) is played by Player(.Name) with a spanning uniqueness on the fact type). It can really be done with any table though by editing the table name.
If a deontic exclusion constraint intersects an alethic or deontic mandatory constraint or an alethic or deontic subset constraint then there is no contradiction error.
Similarly, an alethic exclusion is not a contradiction of a deontic role.
Basically, ignore all deontic constraint when validation exclusion/simple mandatory and exclusion/subset intersections. The attached model should not have any errors.
Note that a deontic exclusion where all roles are simple mandatory on the same role player means that the deontic constraint will always be violated in a populated model. We do not try to handle this case here.
Using the capability to create a new group by selecting a type in an ORM diagram, right clicking, selecting Groups --> Include in --> New Group, an exception is generated in a MS .NET Framework window that popup with the error message "Unhandeld exception has occurred in a component in your application...
The way NORMA visualizes objectified fact types in some diagrams is too cumbersome and need to be improved.
These diagrams are those where there is no need to show the object types that are hosted by the roles of the related fact types.
In these cases, a simple object type representation would be already much better.
For me, a simple way forward would be to add a property to the object type "DisplayObjectifiedFactType" with the possible value "AsObjectType only" or "IncludingFactType".
Thanks for considering this enhancement and hopefully implement it...
Facts are implicitly populated if the fact type is part of the preferred identifier for an entity type. If the preferred identifier has a single role then we just show the instance name in both roles. However, this does not work for a compound identifier. In this case, the name of the role instance corresponding to the role needs to be used for the corresponding role.
The "New file" dialog does not create a new .orm file.
Version information:
Microsoft Visual Studio Community 2022
Version 17.8.4
VisualStudio.17.Release/17.8.4+34408.163
Microsoft .NET Framework
Version 4.8.09032
ORM Solutions Natural ORM Architect 1.0.3049.4-g17343d19 (2023-03)
Steps:
Expected result:
A new .orm file is created in step 3
Dear Matt,
Coming back on an issue I asked you some days ago, I would like to check the validity of an .ORM (i.e. .XML) file regarding its compliance with the NORMA XSD schemas' definitions.
I use Altova XMLSpy for that purpose but the .ORM file does not include the links to the NORMA XSD/DTD. It only includes the namespace definitions.
Would you be able to provide me with the XML tag definition that I need to add to the ORM files to enable such validation.
Thanks
Serge
A single-column exclusion constraint with a mandatory role on a subtype should not be a model error. A mandatory constraint constraint only contradicts the exclusion constraint when one or more constraint roles in the exclusion constraint are of the same type or a subtype of the mandatory role.
Similarly, a single-column equality constraint with all roles mandatory should not be a validation error if the roles are split over subtypes. Limit this error to cases where the same role player is constraint by all roles in the equality constraint. Also, limit this implication inference (and subsequent error) to alethic intersections only.
I have used the NORMA tooling a long time ago, and am glad to see that it is still around and being maintained. ๐ I thought one should be able to type facts into the ORM Fact Editor, like "Employee reports to Manager". However after creating a new ORM diagram, the ORM Fact Editor doesn't appear to be doing anything and I cannot type in the window. Is there a step I'm missing, or using the tooling incorrectly? This is on Visual Studio Community 2022.
There is no gitignore file in the repository, unfortunately.
The Dsl framework is not successfully parenting the DiagramClientView window (where the ORM shapes are drawn) inside the VSDiagramView window (the viewport that owns the scrollbars for the client view) on a reload.
The result is that any reload (either from file save, or simply from adding an extension) successfully loads the file but does not show any diagrams (except in diagram spy, which is fine).
This is caused by a change in Windows 10 1703 and later that changes the behavior of 'Dpi awareness'. After this change the SetParent windows API will fail if you try to associated two windows with different 'awareness' levels. In this case, the DiagramClientView (child window) is created before the parent window and gets a different awareness setting, which then cannot be attached to the parent handle when it is created.
The hack fix is to recreate the handle for the diagram view before we do too much with it. This will have to do until Microsoft provides a real fix, which will involve creating the child window after the parent windows is attached and knows its final Dpi state.
The ORM Generator Settings dialog has several issues on a zoomed screen.
There is a similar issue in the ORM Context Window, where the Generations spinner overlays the Generations label.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.