Skip to main content

AX 2009 - How to Transfer Security Settings to a Production Server

Translate this page
Summary:
If you are in a situation where you have created your AX security settings on another AX instance and you now need to move them to your production server, below are a few options for how to accomplish this.

Assumptions:
  • This is a one-time transfer from the STAGING server to the PRODUCTION server
  • The security settings transferred from the STAGING server will be the final settings on the PRODUCTION server and it is acceptable to overwrite the security settings that may have already been created on the PRODUCTION server
  • In the examples below we will assume two systems are used: STAGING and PRODUCTION
Option 1 – Use the Security Export/Import Process
In this option, you use the built-in Export and Import functions on the User group permissions form.
Export from STAGING
  1. Log into STAGING system
  2. Go to Administration | Setup | Security | User group permissions
  3. Select the User group and Domain for which you want to export
  4. Click the Export to button
  5. Enter the file name and location of the export file (e.g., SalespersonExport.asg)
  6. Click OK
  7. The User group/Domain security is exported into a *.asg file
Import in PRODUCTION
  1. Log into PRODUCTION system
  2. Go to Administration | Setup | Security | User group permissions
  3. Select the User group and Domain for which you want to import the new security settings
  4. Click the Import button
  5. Browse to the .asg file created in step 7 above
  6. Click OK
  7. The security settings from the .asg file are imported into the User group/Domain you selected in step 3
Option 2 – Use the Standard Export/Import Process
In this option, you use the standard built-in import/export utility and import in only the tables that you need.
Export from STAGING
  1. Log into the STAGING system
  2. Log into the DAT company
  3. Go to Administration | Periodic
  4. Expand Data export/import
  5. Select Definition groups
  6. Enter a new Definition group (e.g., Security)
  7. Enter a Definition group name (e.g., Transfer Security Settings)
  8. In this example, select Standard as the Type (you can use another that you prefer)
  9. Click Options tab
  10. Select the "Include system tables" checkbox (security tables are considered system tables in AX)
  11. Click the Table setup button
  12. Only include the following tables:
    1. AccessRightsList* - Stores the security permissions for User groups
    2. UserGroupInfo* - Stores the User groups
    3. DomainInfo* - Stores the Domains
    4. UserGroupList - Stores the User group membership
    5. UserInfo - Stores the AX Users
    6. SysUserInfo - Stores the AX User option settings
    7. CompanyDomainList - Stores the company/domain relationship
  13. Click the Export to button
  14. Browse to a location, name, and save the file (.dat if using Standard type)
  15. OK
Import in PRODUCTION
  1. Log into PRODUCTION system
  2. Log into the DAT company
  3. Go to Administration | Periodic
  4. Expand Data export/import
  5. Select Import
  6. Select the Definition group you created
  7. Browse to the .dat file you exported
  8. Ok

Important Notes:
  • These are examples of a one-time transfer and where it is accepted to overwrite any security settings that may have already been created on the Production system
  • You must understand the data that is stored in each of these security tables as it will overwrite your settings
  • Export and import only the tables that you wish to use in the new system
  • There are additional tables that could optionally be exported and imported such as usage data stored in the SysLastValue table if the circumstances were that the usage data created on the STAGING server is valuable to bring over to PRODUCTION
  • When using the Standard Import/export utility, you must perform this in the DAT company as the security tables are system tables

Recommendations:
  1. You should create your security settings on the PRODUCTION server to avoid moving data from STAGING to PRODUCTION.
  2. Use option 1 if you are only moving small sets of permissions as it will require additional work and could create many export files. With this option you can only export out one User group+Domain combination at a time. Ex: If you had 5 domains, it would mean each group could have 5 export files.
  3. You should use the transfer options for one-time transfers of security and you should always include the tables marked with an * when one-time transfers

Popular posts from this blog

Dynamics Axapta: Sales Orders & Business Connector

Well, again folllowing my same idea of writting close to nothing and pasting code, I'll paste in some code to create a sales order from some basic data and the invoice it. I'll try to explain more in the future. AxaptaObject axSalesTable = ax.CreateAxaptaObject("AxSalesTable"); AxaptaRecord rcInventDim = ax.CreateAxaptaRecord("InventDim"); AxaptaRecord rcCustTable = ax.CreateAxaptaRecord("CustTable"); rcCustTable.ExecuteStmt("select * from %1 where %1.AccountNum == '" + MySalesOrderObject.CustAccount + "'"); if (MySalesOrderObject.CurrencyCode.Trim().Length == 0) MySalesOrderObject.CurrencyCode = rcCustTable.get_Field("Currency").ToString().Trim(); string sTaxGroup = rcCustTable.get_Field("taxgroup").ToString().Trim(); //set header level fields axSalesTable.Call("parmSalesName", MySalesOrderObject.SalesName.Trim()); axSalesTable.Call("parmCustAccount", M

Passing values between form and class

Class name is EmplDuplication and Form is EmplTable . void clicked() {    MenuFunction mf;    args args = new Args();    ;     args.record(EmplTable);     mf = new menufunction(identifierstr(EmplDuplication), MenuItemType::Action); mf.run(args); } Meanwhile, in the main() method of the EmplDuplication class, we need to put this Axapta x++ code to get the datasource: static void main(Args args) {     EmplDuplication EmplDuplication; EmplTable localEmplTable; ;     if(args.record().TableId == tablenum(EmplTable)) localEmplTable = args.record();     ... }