lithnet / acma Goto Github PK
View Code? Open in Web Editor NEWCodeless business rules engine for FIM/MIM
Codeless business rules engine for FIM/MIM
Pending import items may not be seen by the import process if they are modified in some way by a pre-operation event
If you use Ctrl-Enter to provide multi-line input to a Declarative value constructor, there is no vertical scroll bar to scroll down and see the rest of the declaration.
It would be nice to have some grouping support for transforms. We have a long list and being able to collapse and expand particular groups would be very helpful.
When the FIM Sync Service account is running with a local account (.\SyncAccount). The ACMA Service fails to start. The SyncServiceAuthorizationManager constructor grabs the Sync Service Account from the registry and attempts to pull the security identifier. However, it fails if the service account name is in the ".\SyncAccount" format.
A quick fix to solve this was to change the service account to "computername\SyncAccount".
9/16/2020 11:38:54 PM: An error occurred while starting the service
An exception has occurred in OnStart
Type: System.TypeInitializationException
Message: The type initializer for 'Lithnet.Acma.Service.SyncServiceAuthorizationManager' threw an exception.
Source: Lithnet.Acma.Service
TargetSite: Void .ctor()
StackTrace:
at Lithnet.Acma.Service.SyncServiceAuthorizationManager..ctor()
at Lithnet.Acma.Service.ServiceMain.StartSyncServiceHost()
at Lithnet.Acma.Service.ServiceMain.OnStart(String[] args)
I have a recurring issue with the editor when manipulating queries for pre-operation events. It has a tendency to hang for a period of time and maybe crash. Windows shows Not Responding and the UI is non-responsive with the timer mouse icon. When this occurs, it may or may not let me continue working if I leave it alone. This behavior isn't observed in other parts of the UI. Let me know if there is any diagnostic or troubleshooting logs you need.
Attributes that are used in Advanced comparison conditions don't show up in the bottom half of the attribute bindings screen. Attributes used in presence or value comparison do show up.
ACMA triggers are creating a 'modify' entry in the delta table when an attribute in an AVP table is modified. This causes the object to appear in the FIM CS on a delta import.
Lithnet.Acma.ServiceModel.Client and Lithnet.Acma.ServiceModel.Sync do not seem to be updating the assembly version on solution builds.
This is causing the installer to see them as the same file version and not deploy new versions (1.0.0.0) during upgrades, despite the contents of the file having been changed.
This prevents the service from being started after an upgrade with the following error:
Service cannot be started. System.TypeLoadException: Could not load type 'Lithnet.Acma.ServiceModel.IAcmaResourceService' from assembly 'Lithnet.Acma.ServiceModel.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
at Lithnet.Acma.Service.ServiceMain.StartAcmaServiceHost()
at Lithnet.Acma.Service.ServiceMain.OnStart(String[] args)
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
The config file has settings for the development build, which causes installations to fail on systems without a D: drive
Pre-operation events that are disabled seem to run anyway. We disabled a number of events in the config file and we still see them triggered in the log file.
For example:
Event:
<event i:type="operation-event"> <description i:nil="true" /> <disabled>true</disabled> <name>Trigger company updates</name> <operation-types>full-import delta-import export</operation-types> <recipient-queries> <dbquery i:type="dbquery-group"> <description i:nil="true" /> <dbqueries> <dbquery i:type="dbquery-group"> <description i:nil="true" /> <dbqueries> <dbquery i:type="dbquery-byvalue"> <description i:nil="true" /> <operator>Equals</operator> <search-attribute> <name>HRCompany</name> </search-attribute> <value-declarations> <value-declaration> <transform-string i:nil="true" /> <value>WestRock Services, Inc.</value> </value-declaration> </value-declarations> </dbquery> <dbquery i:type="dbquery-byvalue"> <description i:nil="true" /> <operator>Equals</operator> <search-attribute> <name>HRCompany</name> </search-attribute> <value-declarations> <value-declaration> <transform-string i:nil="true" /> <value>WestRock MWV LLC</value> </value-declaration> </value-declarations> </dbquery> </dbqueries> <display-name i:nil="true" /> <operator>none</operator> </dbquery> <dbquery i:type="dbquery-byvalue"> <description i:nil="true" /> <operator>Equals</operator> <search-attribute> <name>objectClass</name> </search-attribute> <value-declarations> <value-declaration> <transform-string i:nil="true" /> <value>person</value> </value-declaration> </value-declarations> </dbquery> </dbqueries> <display-name i:nil="true" /> <operator>all</operator> </dbquery> </recipient-queries> </event>
Log file entries:
9/9/2017 10:36:41 AM: Sending event Trigger company updates to person:Roger Audy:0d9cdb9c-e36a-4f7c-9517-b13470a4711d
9/9/2017 10:36:41 AM: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
9/9/2017 10:36:41 AM: Processing CSEntryChange for object person:Roger Audy:0d9cdb9c-e36a-4f7c-9517-b13470a4711d
9/9/2017 10:36:41 AM: Change details (this object): Modification type: Update; Changed attributes:
9/9/2017 10:36:41 AM: Incoming events: Trigger company updates
Installation of ACMA fails with the not-so-helpful-message: "Lithnet ACMA setup wizard ended prematuerly because of an error". Is there anybody out there? - having an idea about what caused the error or what can be done to rectify this? Is there a logfile somewhere that can give som insight?
$error[0].Exception.StackTrace
at System.Data.Linq.EntitySet1.Insert(Int32 index, TEntity entity) at System.Collections.ObjectModel.Collection
1.System.Collections.IList.Add(Object value)
at Lithnet.Acma.AcmaDatabase.CreateMapping(AcmaSchemaObjectClass objectClass, AcmaSchemaAttribute attribute, AcmaSche
maAttribute inheritanceSourceAttribute, AcmaSchemaObjectClass inheritanceSourceObjectClass, AcmaSchemaAttribute inherite
dAttribute, IBindingList mappingsBindingList, Boolean isBuiltIn)
at Lithnet.Acma.AcmaDatabase.CreateBuiltInMappings(AcmaSchemaObjectClass objectClass)
at Lithnet.Acma.AcmaDatabase.CreateObjectClass(String name, Boolean canResurrect, AcmaSchemaObjectClass shadowFromCla
ss)
at Lithnet.Acma.PS.AddAcmaSchemaObjectClass.ProcessRecord()
Trying the command
New-AcmaPresenceQuery -AttributeName mail -Operator IsPresent
Getting the error
The specified search operator is not valid for this data type
Datatype: String
When specifying unit test expected values, modifiers applied to constants don't seem to apply. For example:
Disabled on %date%>>ToMonthDayYear by MIM
where ToMonthDayYear is a valid transform. In this case, the output is:
Disabled on 2017-05-01T15:46:29.000>>ToMonthDayYear by MIM
This is problematic for date sensitive values because unit tests would need to be updated every time they are run (with the current date).
The server encountered an unexpected error:
"Could not load file or assembly 'Lithnet.Acma.ServiceModel.Sync, Version=1.1.6258.25372, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
at Lithnet.Acma.Ecma2.ManagementAgent..ctor()
InnerException=>
none
"
If there are more entries in the table than can fit on the screen, it's hard to get to them because there is no scroll bar appearing.
When exporting the members attribute on a large group (~25K) members, the operation seems to timeout and gives the following error:
The operation is not valid for the state of the transaction
Details:
at System.Transactions.TransactionState.EnlistPromotableSinglePhase(InternalTransaction tx, IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Transaction atomicTransaction, Guid promoterType)
at System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification, Guid promoterType)
at System.Transactions.Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification)
at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)
at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)
at System.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1 retry)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry) at System.Data.SqlClient.SqlConnection.Open() at Lithnet.Acma.AcmaDatabase.GetNewConnection() at Lithnet.Acma.MAObject.Commit() at Lithnet.Acma.MAObjectHologram.CommitCSEntryChange(MAObjectHologram triggeringObject, IList
1 attributeChanges, IList1 incomingEvents, IList
1 constructors, Int32 depth)
at Lithnet.Acma.MAObjectHologram.CommitCSEntryChange(CSEntryChange csentry, Boolean isUndeleting)
at Lithnet.Acma.CSEntryExport.PerformCSEntryExportUpdate(CSEntryChange csentryChange, Boolean& referenceRetryRequired)
at Lithnet.Acma.CSEntryExport.PutExportEntry(CSEntryChange csentry, Boolean& referenceRetryRequired)
at Lithnet.Acma.Service.AcmaSyncService.ExportPage(ExportRequest request)
I am trying to setup shadow accounts for admin and test accounts. It seems, whenever I try to create the link from the shadow account back to the person class, that I get an error "Could not create the attribute. Specified argument is out of the range of valid values. Parameter name: entity". I'm specifying a link name that should be unique, my single valued boolean for provisioning control, and the single valued reference I created to hold the Admin Account reference. Any idea what I might try to get this working?
Using the acma powershell cmdlets Add-AcmaSchemaReferenceBackLink and Add-AcmaShadowObjectLink allows you to create one back link and one shadow object link, then all attempts afterwards fail with the following errors:
Add-AcmaSchemaReferenceBackLink
_System.InvalidOperationException: Cannot add an entity that already exists.
at System.Data.Linq.Table1.InsertOnSubmit(TEntity entity) at System.Data.Linq.Provider.DataBindingList
1.EndNew(Int32 itemIndex)
at System.ComponentModel.BindingList1.InsertItem(Int32 index, T item) at System.Data.Linq.Provider.DataBindingList
1.InsertItem(Int32 index, TEntity item)
at System.ComponentModel.BindingList1.AddNewCore() at System.Data.Linq.Provider.DataBindingList
1.AddNewCore()
at System.ComponentModel.BindingList`1.System.ComponentModel.IBindingList.AddNew()
at Lithnet.Acma.AcmaDatabase.CreateReferenceLink(AcmaSchemaObjectClass forwardLinkObjectClass, AcmaSchemaAttribute forwardLink, AcmaSchemaObjectClass backLinkObjectClass, AcmaS
chemaAttribute backLink, IBindingList bindingList)
at Lithnet.Acma.AcmaDatabase.CreateReferenceLink(AcmaSchemaObjectClass forwardLinkObjectClass, AcmaSchemaAttribute forwardLink, AcmaSchemaObjectClass backLinkObjectClass, AcmaS
chemaAttribute backLink)
at Lithnet.Acma.PS.AddAcmaSchemaReferenceBackLink.ProcessRecord()
Add-AcmaSchemaReferenceBackLink : Cannot add an entity that already exists.
At line:6 char:1
+ CategoryInfo : NotSpecified: (:) [Add-AcmaSchemaReferenceBackLink], InvalidOperationException
+ FullyQualifiedErrorId : UnknownError,Lithnet.Acma.PS.AddAcmaSchemaReferenceBackLink_
Add-AcmaShadowObjectLink
_System.InvalidOperationException: Cannot add an entity that already exists.
at System.Data.Linq.Table1.InsertOnSubmit(TEntity entity) at System.Data.Linq.Provider.DataBindingList
1.EndNew(Int32 itemIndex)
at System.ComponentModel.BindingList1.InsertItem(Int32 index, T item) at System.Data.Linq.Provider.DataBindingList
1.InsertItem(Int32 index, TEntity item)
at System.ComponentModel.BindingList1.AddNewCore() at System.Data.Linq.Provider.DataBindingList
1.AddNewCore()
at System.ComponentModel.BindingList`1.System.ComponentModel.IBindingList.AddNew()
at Lithnet.Acma.AcmaDatabase.CreateShadowLink(AcmaSchemaObjectClass shadowClass, AcmaSchemaAttribute provisioningAttribute, AcmaSchemaAttribute referenceAttribute, String name,
IBindingList bindingList)
at Lithnet.Acma.AcmaDatabase.CreateShadowLink(AcmaSchemaObjectClass shadowClass, AcmaSchemaAttribute provisioningAttribute, AcmaSchemaAttribute referenceAtttribute, String name
)
at Lithnet.Acma.PS.AddAcmaShadowObjectLink.ProcessRecord()
Add-AcmaShadowObjectLink : Cannot add an entity that already exists.
At line:6 char:1
+ CategoryInfo : NotSpecified: (:) [Add-AcmaShadowObjectLink], InvalidOperationException
+ FullyQualifiedErrorId : UnknownError,Lithnet.Acma.PS.AddAcmaShadowObjectLink_
Unloading the PS module and reloading does not resolve the issue.
During the installation of ACMA, we had to stop during the install and create a new blank config file, otherwise the installation would fail.
When creating a unit test, the editor will not let you save an attribute whose value consists of only whitespace (single space).
I've been going through the instructions for setting up the MA and am hitting a wall. I've configured a schema in the editor for the Lithnet.Acma database which is on another server but when attempting to add the ACMA MA on the Connectivity tab there is only a view for configuring the log path and when pressing "Next" I receive an error saying "Unable to retrieve schema. Error: 80230909" I'm running MIM 2016 with the November 2017 hotfixes installed. Any ideas?
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.