Menu

Toolkit Data model Inconsistency (iTOP 3 Toolikit 3)

Marco
2022-03-02
2023-02-28
  • Marco

    Marco - 2022-03-02

    Hi all,
    I found several discussion regarding the same topics, some links are not working anymore and some discussion without any conclusion. I will try to re-propose the topics.
    My configuration iTOP 3, Toolikit 3, MariaDB 10.3.31

    1)First topic not really important but nice to understand.
    Is there a way to remove all the useless messages in the "Check Database" like "varchar(255) and VARCHAR(255)". A lot of warning that make the check a bit unreadble.

    2) What is important for me to understand is the data model consistency. I receive a lot of inconsistency (see below). I read that could be the custom extensions that break the lifecycle. Is not really clear for me and I would like to understand better, because I have several custom extension, some of them customizing the class in the list below, but some other classes I never touched and present the inconsistency as well.

    Thanks in advance for any suggestion and explanation.

    BR
    Marco

    Class Organization
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Location
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Contact
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Document
    Attribute 'status' (object state) has an allowed value (draft) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (published) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class PhysicalDevice
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (stock) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class ApplicationSolution
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class BusinessProcess
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class SoftwareInstance
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Group
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Contract
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (kuendigungsfrist) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Service
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class ServiceSubcategory
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Class VirtualDevice
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (stock) which is not a known state (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowed_values property as [new ValueSetEnum('')], or reconsider the list of states)
    
     
  • Pierre Goiffon

    Pierre Goiffon - 2022-04-13

    Hello,

    1) We put a lot of work to remove them (especially N°2490 in 2.7.0) but there are some still present. Those last fixes are not top priority in current roadmap.

    2) I cannot reproduce. Please give some hints so that we can see the cause of this behavior ? The closest to the iTop Community version the better...

     
  • Fabrice Vincent

    Fabrice Vincent - 2022-10-13

    Bonjour Pierre,

    I have the exact same issue with a brand new iTop community 3.0.2-1 and toolkit v3 (itop-toolkit-community-3.0.0.zip from GitHub).
    I have no custom extension nor any itophub extension installed.
    Data is just the demo instance stuff added by the setup.

    Details of my setup:

      ===== begin =====
      iTopVersion: 3.0.2-1
      iTopBuild: 9957
      iTopBuildDate: 2022-09-12 14:08:58
      MySQLVersion: 10.3.36-MariaDB
      PHPVersion: 7.4.32
      OSVersion: Linux
      WebServerVersion: Apache
      PHPModules: Core, date, libxml, openssl, pcre, sqlite3, zlib, bz2, calendar, ctype, curl, hash, filter, ftp, gettext, gmp, SPL, iconv, pcntl, readline, Reflection, session, standard, shmop, SimpleXML, mbstring, tokenizer, xml, litespeed, bcmath, dom, fileinfo, gd, imap, intl, json, ldap, exif, mysqlnd, mysqli, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, soap, sockets, sysvmsg, sysvsem, sysvshm, tidy, xmlreader, xmlrpc, xmlwriter, xsl, zip, Zend OPcache
      ItopSetting/cron_max_execution_time: 600
      ItopSetting/timezone: Europe/Paris
      PHPSetting/memory_limit: 2048M
      PHPSetting/max_execution_time: 1200
      PHPSetting/upload_max_filesize: 256M
      PHPSetting/post_max_size: 512M
      MySQLSetting/max_allowed_packet: 268435456
      MySQLSetting/key_buffer_size: 134217728
      MySQLSetting/query_cache_size: 67108864
      MySQLStatus/Key_read_requests: 852983834
      MySQLStatus/Key_reads: 767746
      InstallDate: 2022-10-13 18:57:19
      InstallPath: XXXXXXXXXXXXXXX
      ---- Installation choices ----
      InstalledExtension/itop-config-mgmt-core/3.0.2-1
      InstalledExtension/itop-service-mgmt-service-provider/3.0.2-1
      InstalledExtension/itop-ticket-mgmt-simple-ticket-enhanced-portal/3.0.2-1
      InstalledExtension/itop-ticket-mgmt-simple-ticket/3.0.2-1
      InstalledExtension/itop-change-mgmt-none/3.0.2-1
      ---- Actual modules installed ----
      InstalledModule/authent-cas: 3.0.2
      InstalledModule/authent-external: 3.0.2
      InstalledModule/authent-ldap: 3.0.2
      InstalledModule/authent-local: 3.0.2
      InstalledModule/combodo-backoffice-darkmoon-theme: 3.0.2
      InstalledModule/itop-attachments: 3.0.2
      InstalledModule/itop-backup: 3.0.2
      InstalledModule/itop-config: 3.0.2
      InstalledModule/itop-files-information: 3.0.2
      InstalledModule/itop-portal-base: 3.0.2
      InstalledModule/itop-portal: 3.0.2
      InstalledModule/itop-profiles-itil: 3.0.2
      InstalledModule/itop-sla-computation: 3.0.2
      InstalledModule/itop-structure: 3.0.2
      InstalledModule/itop-themes-compat: 3.0.2
      InstalledModule/itop-tickets: 3.0.2
      InstalledModule/itop-welcome-itil: 3.0.2
      InstalledModule/combodo-db-tools: 3.0.2
      InstalledModule/itop-config-mgmt: 3.0.2
      InstalledModule/itop-core-update: 3.0.2
      InstalledModule/itop-hub-connector: 3.0.2
      InstalledModule/itop-oauth-client: 3.0.2
      InstalledModule/itop-request-mgmt: 3.0.2
      InstalledModule/itop-service-mgmt-provider: 3.0.2
      InstalledModule/combodo-webhook-integration: 1.1.1
      InstalledModule/itop-bridge-cmdb-ticket: 3.0.2
      ===== end =====  
    

    Error messages:

    Class Organization
    
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Location
    
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Contact
    
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Document
    
    Attribute 'status' (object state) has an allowed value (draft) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (published) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class PhysicalDevice
    
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (stock) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class ApplicationSolution
    
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class BusinessProcess
    
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class SoftwareInstance
    
    Attribute 'status' (object state) has an allowed value (active) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (inactive) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Group
    
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    *Class Contract
    
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class Service
    
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class ServiceSubcategory
    
    Attribute 'status' (object state) has an allowed value (implementation) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (obsolete) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has an allowed value (production) which is not a known state (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Attribute 'status' (object state) has a state () which is not an allowed value (You may define its allowedvalues property as [new ValueSetEnum('')], or reconsider the list of states)
    Class RemoteApplicationConnection
    
    Unknown attribute code 'application' in the list of reconciliation keys (Expecting a value in name, remoteapplicationtypeid, environment, url, actionslist, finalclass, friendlyname, remoteapplicationtypeidfriendlyname)
    Class RemoteiTopConnection
    
    Unknown attribute code 'application' in the list of reconciliation keys (Expecting a value in name, remoteapplicationtypeid, environment, url, actionslist, authuser, authpwd, version, finalclass, friendlyname, remoteapplicationtypeidfriendlyname)  
    

    Hope this could help reproduce and solve the issue.

     

    Last edit: Fabrice Vincent 2022-10-18
  • Fabrice Vincent

    Fabrice Vincent - 2022-10-18

    Looking at the error messages a bit further, there is a hint of what is gooing wrong: for each class with a lifecycle, there is a error message for each existing status value, and there is an error about a state "" which is not allowed. A state with no name...

    Looking at the code I see that at some point it calls MetaModel::CheckDefinitions(). And at line 5020, this method does a " $aStates = array_keys(self::EnumStates($sClass)); ". I suspect that, for an unknown reason, the result stored in $aStates is empty.
    With this assumption, all the error messages make sense: comparing an empty list on known state with a filled-up list of enum values for the status attribute, throw errors for all existing enums and for a no-name state.
    To be confirmed and troubleshooted ?

     

    Last edit: Fabrice Vincent 2022-10-18
  • Fabrice Vincent

    Fabrice Vincent - 2022-10-18

    BTW, the last 2 errors, about Unknown attribute code 'application' in the list of reconciliation keys of classes RemoteApplicationConnection and RemoteiTopConnection seems to be real actual bugs in the 3.0 datamodel : there is no 'application' fields defined in these to classes, and neither in their parent class Typology.

     
  • Pierre Goiffon

    Pierre Goiffon - 2022-10-18

    Hello Fabrice !
    Many thanks for the analysis !
    The problem was reproduced thanks to the info given in another thread ([8203a6f142]) and a bug was created in Combodo DB : N°5218. I've reported the info in the bug.

     

    Related

    Discussion: 8203a6f142

  • Carlos Anguiano

    Carlos Anguiano - 2023-01-25

    Hi, I'm new with the iTop platform and application, I was also trying to add a new field in an existing class, but I ran into the same problem, I also have iTop 3.0, Toolkitt 3.0, but I keep getting the same messages

    The 'status' attribute (object status) has an allowed value (xxxxx) which is not a known status., etc

    Is there any update on this since last time, or is there any other solution to add a new field?

    Thank you very much.
    Best regards.

     

    Last edit: Carlos Anguiano 2023-01-25
  • Carlos Anguiano

    Carlos Anguiano - 2023-02-15

    Understood Marco, thanks... however, I am still having problems in adding 2 fields to the Incident class, I could be doing something wrong or I am missing something, I have followed the instructions (https://www.itophub.io/wiki/page?id=3_0_0:customization:add-attribute-sample) for this process, but I can't get it to work..... should i move this topic to a new discussion? at first i thought it was because of the bug already mentioned..... is there any advice you could give me .... I am new with iTop so any guidance on this issue would be greatly appreciated.....

    Regards.

     
    • Marco

      Marco - 2023-02-15

      Hi Carlos,
      I would say yes, move the topic out from this one for the bug, you will get
      more help for sure. (Once you open a new thread you can reply here the
      link, so I can follow and help you).
      Regarding the help, I think you should provide more information. The link
      you posted is the correct one, that I can say, but if you don't post what
      you did, or the error you get compiling is hard for me to understand.

      BR
      Marco

      Il mer 15 feb 2023, 16:13 Carlos Anguiano cangui1@users.sourceforge.net
      ha scritto:

      Understood Marco, thanks... however, I am still having problems in adding
      2 fields to the Incident class, I could be doing something wrong or I am
      missing something, I have followed the instructions (
      https://www.itophub.io/wiki/page?id=3_0_0:customization:add-attribute-sample)
      for this process, but I can't get it to work..... should i move this topic
      to a new discussion? at first i thought it was because of the bug already
      mentioned..... is there any advice you could give me .... I am new with
      iTop so any guidance on this issue would be greatly appreciated.....

      Regards.

      Toolkit Data model Inconsistency (iTOP 3 Toolikit 3)
      https://sourceforge.net/p/itop/discussion/customizing-itop/thread/0355f72b90/?limit=25#15bd


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/itop/discussion/customizing-itop/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       
  • Carlos Anguiano

    Carlos Anguiano - 2023-02-17

    Great Marco , I will move it out of this .... and I will share with you the link..... Thank you very much.

    Best regards.

     
  • Carlos Anguiano

    Carlos Anguiano - 2023-02-28

    Hi Marco, I hope you are well....

    Did you get a chance to see the link I shared with you a few days ago?
    BR.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.