Your email address as well as other information about you and your company will be kept protected from abuse.
You can choose to have all submitted data removed from our system at any time.
Access to the information you submit will be controlled by you and your company.
All information sent to and from RRR|Online using your browser will be encrypted using SSL to ensure privacy.
We at RRR AB will monitor the applications at RRR|Online to make sure that all services are functioning properly.
We log all access to the system by storing email address, script name of url and timestamp. This information will only be used for overall statistical purposes and to track errors or abuse of RRR|Online.
Please send any questions or comments about our privacy policy to support@rrr.se.
Application: RRR|Chive Version: 4.01 Date: 2020-11-24 By: Misi Mladoniczky Copyright: 2002-2020 by Real Refined Resource Scandinavia AB Web: http://www.rrr.se Email: info@rrr.se ------------------------------------------------------------------------------ You may install and use this program free of charge at any ARSystem site. You may purchase support from RRR on this product if required. More information can be found at http://www.rrr.se or by sending an email to info@rrr.se. Installation on Windows 64-bit: Copy the rrrchive.exe file to a chosen directory. Make sure that the following ARAPI and Microsoft DLLs are accessible to rrrchive.exe. Copying the included DLLs to the installation directory will allways work. - arapi91_build001_win64.dll - arrpc91_build001_win64.dll - arutl91_build001_win64.dll - icudt32.dll - icuinbmc32_win64.dll - icuucbmc32_win64.dll - libgcc_s_seh-1.dll - libstdc++-6.dll - libwinpthread-1.dll Installation on Linux: Copy the rrrchive binary to a chosen directory. Make sure that the following shared objects are in the LD_LIBRARY_PATH. Copying the included libraries to the installation directory will allways work. - libar_lx64.so - libicudatabmc_lx64.so.32 - libicui18nbmc_lx64.so.32 - libicuucbmc_lx64.so.32 Installation on Solaris: Copy the rrrchive binary to a chosen directory. Make sure that the following shared objects are in the LD_LIBRARY_PATH. Copying the included libraries to the installation directory will allways work. - libar.so - libgcc_s.so.1 - libicudatabmc.so.32 - libicui18nbmc.so.32 - libicuucbmc.so.32 - libstdc++.so.6 Installation on AIX: Copy the rrrchive binary to a chosen directory. Running rrrChive: You can run rrrchive from a console/cmd-prompt. Run "rrrchive" with no arguments to get a list of valid arguments. If you run rrrchive from a filter/escalation, you should include the full path to the configuration file. Configfile: Help about the configfile is printed if you run "rrrchive -help". You may use the web-configurator at RRR|Online, http://www.rrr.se
usage: rrrchive [ -test ] [ --par=val ] [ rrr.cfg [ sel0 [ s1 [ ... [ s9 ]]]]] Run rrrChive as dictated by rrr.cfg -test will run all searches but change nothing of the forms --par=var can be any of the allowed parameters in the config, where you replace 'par' with the config-parameter, followed by '=' and the value. Remember to put quotes around the value if it contains any white space. -thread x:y to run several processes, for example you can start three instances in three cli-windows by specifying -thread 1:3, -thread 2:3 and -thread 3:3. Each process will then handle one third usage: rrrchive -formlist config.cfg Run rrrChive and list all regular forms in source and target No data will be changed in either source or target usage: rrrchive -ver Prints version information usage: rrrchive -help [ configparameter ] Prints possible config parameters Specify a specific parameter for more details Specify "all" as config parameter to get details about everything This tool can copy, move, export and import records between servers, forms and/or arx-files. The Merge-API-call is used, the same as in Remedy Import, to allow data to be imported without change, including the Request ID and Modify-Date/By fields. Pattern matching is disabled and required fields are treated as optional.
To be able to use rrrchive, you need to setup a configuration file. Here is a list of all parameters you can set in this file. source_server = CHAR Holds the name of the source server. source_tcp = 1-1000000 Supply a TCP-port for servers not using the portmapper, or servers accessed through a firewall. source_rpc = 390600-390699 If you use want to use a private server, supply the RPC-number here. source_user = CHAR The login name to the source server. source_password = PASSWD The password to the source server. source_language = CHAR The language setting if you do not want to use the default. source_authentication = CHAR The authentication server. source_arx = CHAR Holds the source arx file name. If this parameter is specified. If this parameter is specified the source_server or source_dir should not be specified. source_dir = CHAR Holds the source directory where arx-files are read. If this parameter is specified the source_server or source_arx should not be specified. source_form = CHAR The form where you want to COPY/MOVE data from. This field is not used if you supply a formlist. source_disabledeletefltr = { YES | NO } This selection will disable any filter that triggers on delete in the source form. Disabling the filter is done by unchecking the delete-operation on the specific filter. This can be useful if you moving records from the source form. The filters are delete-enabled after each form has been processed. target_server = CHAR Holds the name of the target server. Specify SOURCE to use same as source server. target_tcp = 1-1000000 Supply a TCP-port for servers not using the portmapper, or servers accessed through a firewall. Specify SOURCE to use same as source server. target_rpc = 390600-390699 If you use want to use a private server, supply the RPC-number here, or SOURCE to use same as source server. target_user = CHAR The login name to the target server, or SOURCE to use same as source server. target_password = PASSWD The password to the target server, or SOURCE to use same as source server. target_language = CHAR The language setting if you do not want to use the default, or SOURCE to use same as source server. target_authentication = CHAR The authentication server, or SOURCE to use same as source server. target_arx = CHAR Holds the target arx file name. If this parameter is specified. If this parameter is specified the target_server or target_dir should not be specified. target_dir = CHAR Holds the target directory where arx-files are written. If this parameter is specified the target_server or target_arx should not be specified. target_form = CHAR The form where you want to COPY/MOVE data to. This field is not used if you supply a formlist. target_disabledeletefltr = { YES | NO } This selection will disable any filter that triggers on delete in the target form. Disabling the filter is done by unchecking the delete-operation on the specific filter. This can be useful if you use clear (delete) all records in the target form. The filters are delete-enabled after each form has been processed. target_disablemergefltr = { YES | NO } This selection will disable any filter that triggers on merge in the target form. Disabling the filter is done by unchecking the merge-operation on the specific filter. This can be useful if you want to be sure that the data is not be changed i.e. when copying from one server to another. The filters are merge-enabled after each form has been processed. target_disableaudit = { YES | NO } This selection will disable audit of the copied data, to prevent the filling up the associated audit form. target_dropindexes = { YES | NO } Before the entries are merged into the target form, all indexes on that form will be dropped. The indexes are recreated after the form is finished. All filters dropped and recreated are logged. If you break a running session of rrrchive (ctrl-c), the indexes are not recreated. You have to recreate them manually. Setting this value to YES can improve performance for tables with many records. target_clearallrecords = { YES | NO } This option will clear the target form of all records before any processing is done. The delete is performed one by one, which can take some time. multipleforms = value1 [, value2 [, ... ]]] In this field you can supply a list (comma separated) of forms which datat should be copied/moved to the target server. If you specify a *, all regular forms will be processed. Leading match is supported, and you can specify HPD* to include fields starting with HPD. You can complement the multipleforms-list with a skipform-list, i.e. User,Group. If you specify multipleforms, the source_form and target_form will not be used. skipforms = value1 [, value2 [, ... ]]] If you have set a * in the multipleformslist to porcess all forms, you can specify a list (comma separated) of forms not to process in this field. You can use leading match, and form example skip any form starting with AR by specifying AR*. qual = CHAR In this field you can specify the query to be used. The same syntax as in the Advanced Search Bar in ARUser applies. NOTE that to specify a %-sign in this field, you need to put two, i.e. 'Name' LIKE "Peter%%" Each %s in this field will be replaced by an extra command line argument, letting you pass qualification information to this field. I.e. ('1'="%s") will let you specify an Entry ID on the command line. primarykey = value1 [, value2 [, ... ]]] A unique field, or combination of fields, can be used as primary key instead of the default Request ID field (field id 1). This could be the GUID field '179', or the 'Login Name' of the User-form. Or maybe a combination of 'First Name', 'Last Name' of a contact person form. When using primarykey you must make sure that the field/fields represent unique values. You can only use primarykey together with transfertype SYNC*, if you just want to copy you should disable primarykey. splitsearch = { YES | NO } To prevent timeouts when searching forms, this option splits the search into several searches on larger forms. This option is most useful if you have more than 100 000 records in any form. maxrecords = 0-100000000 Here you can specify the maximum number of records to copy/move in each form. In example you can specify 1800 to copy a suitable number of records to an unlicensed demo server with a limit of 2000 records. This will give you room for manual creation of 200 records. multientrychunksize = 1-1000000 This program uses the ARGetMultipleEntries()-API-call to improve performance. The default setting is to retrieve 100 records in eache API-call to the source server. If you have a form with only a couple of fields, you can increase the chunk size. If you have very large records, you can decrease this applications memory usage by specifying a lower value. If 1 if specified, the old ARGetEntry() will be used instead. This is recommended for ARServers of version 4.0.x. maxerrorsperform = 0-1000000 You are able to specify how many error messages rrrChive will accept before a form is skipped. Specify 0 (zero) or leave the field blank to accept unlimited number of errors. sorting = { NORMAL | REVERSE | ALTERNATE } If you limit the number of records to be moved with the maxrecords-parameter, you can benefit from using one of these sorting options. NORMAL will start with the record with the lowest Entry ID. REVERSE will start with the highest. ALTERNATE can be usefull, as it will copy records by alternating beginning and end of the selected records. As a result, half of the copied records will be from the oldest records of your source form and half from the newest ones. transfertype = { COPY | MOVE | SYNCDELETED | SYNCTOTARGET | SYNCIFNEWER } This very important field will tell rrrchive either to COPY or MOVE records from source to target. When using MOVE, the source record is deleted after the target record has been created without any errors and a that the verification of the data has been done. Verification is only used if you have specified this setting. The SYNCDELETED setting will perform the query on both source and target form, and then remove the records in the target that did not exist in the source. The SYNCTOTARGET setting will perform the query on both source and target form, compare modify timestamp (field id 6), and then copy, update or delete the appropriate record to/on the target. This can be done multiple times for incremental transfer of data, e.g. restoration of data after a test session in the target server. SYNCIFNEWER performs exactly as SYNCTOTARGET, except that records are copied only of they are newer on the source-form than in the target-form. mergemode = { OVERWRITE | NEW_ID | UPDATE | DUP_ERROR | DUP_NEW_ID } The normal behavior is to OVERWRITE any existing record with the same entry-id. You can set this to similar values that is used in the AR/Data Import tools. UPDATE will update old records with new record data, leaving existing fields intact. NEW_ID will generate new entry-ids for all records. DUP_ERROR will prevent rrrchive from overwriting any existing data. DUP_NEW_ID will also prevent overwriting data, but will generate new entry-ids for those records that already exists. entryidmode = CHAR The default setting is to use the old entry-id, and this will overwrite/update any existing records in accorance with the mergemode-setting. You can put a pattern that is between 5 and 15 characters here that will change the entry id. A pattern of 00000 will create entry ids with 5 digits, a pattern of RRR000000000000 will create entry ids with a RRR prefix followed by 12 digits. The old entry id number will be preserved. If you supply a number starting with + or - (i.e. +5000 or -5555), the entryid will be transposed but keep its original prefix and size. syncmaxdeletedpercent = 0-100 If you have chosen transfertype SYNCDELETED/SYNCTOTARGET/SYNCIFNEWER this parameter will ensure that you do not delete records by misstake. A value of 50 will not delete ANY records if the number of records found for deletion is more than 50 percent of the total number of records. A value of 100 (default) can erase all records in the target form. A value of 0 will make sure that no records are deleted in the target form. deletebeforemerge = { YES | NO } A YES in this field tells rrrchive to delete the source record before the new one has been created. This should only be used when converting the entry id on a single form (source_form equals target_form and a pattern for entryidmode set). verifydata = { YES | NO } If you set this to YES, the target record will be retrieved from the target server after it has been created, letting rrrchive verify each fields contents against the contents from the source server. This setting will decrease performance. Use this setting if you do not trust that the ARSystem API will return an errror message if there is a problem. verifyattachments = { YES | NO } This option is only valid if you have set the verifydata to YES. This has the system retrieve each attachment from the target server after they are stored. This lets the system verify the actual attachment data to the source attachment data, as opposed to just checking the file size. This will decrease rrrchive performance. skipfields = value1 [, value2 [, ... ]]] Here you can specify a list (comma separated) of fields not to be copied/moved. Use the format 'fieldid' or 'fieldname' with single quotes surrounding the values. You can specify the string DISPLAYONLY to skip all display-only-fields and only work with database fields. onlyfields = value1 [, value2 [, ... ]]] Here you can specify a list (comma separated) of fields to be copied/moved, or COMMON to only move fields common to both source and target form. Use the format 'fieldid' or 'fieldname' with single quotes. Only the fields specified will be copied. Remember to include Field ID 1 if you wish to overwrite/update the target record. If Field ID 1 is not included, entryidmode=NEW will be used. skipattachments = { YES | NO } If you do not want to move any attachment data, specify a YES in this field. fieldmapping = value1 [, value2 [, ... ]]] In this field you can specify mapping of fields that has different Field IDs in the source and target forms. Specify a list (comma separated) of fields pairs in the format "'536870913'=>'666001001', '536870914'=>'666001002', 'fieldname'=>'fieldname', ...". setfields = value1 [, value2 [, ... ]]] Specify a comma separated list of field assignments, in the format 'Field1' = "Value", 'Field2' = 3, '53870913' = EXACT("Joe", "Joe User"), ANYWHERE("Mary Manager", "Mary CEO"), '8' = DEFAULT("n/a"). You can assign numeric values, character values and the two replacement functions EXACT() and ANYWHERE(). You also have a DEFAULT() function to specify values when the source value is NULL. If you specify "" the value will be set to NULL. For attachments, specify the file name. You must use the internal format of the arx-files for fields such as Date/Time (numeric) and Selection-values (numeric), Status-History, Diary, etc. nicepausetime = 0-10 If you will move a lot of data during production hours, you can specify a nicepausetime. This will have rrrchive pause for the specified number of seconds (or part of a second in Windows) before each record is imported (ARMergeEntry) to the target form. I.e. specify 0.1 to pause for 100 milliseconds. Note that the minimum time to pause is 1 second on Unix systems. adminrecachetime = 0-300 Number of seconds to go through the admin-thread (RPC 390600) after rrrchive performs an admin change, such as diabling a merge filter. The server needs time to recache this change. Default is to use server config setting Delay-Recache-Time plus 5 seconds. Disable by setting the value to 0. clientcharset = CHAR Normally left blank, allowing the client environment determine the charset/encoding. Sometimes, when the servers and client differ, you want to force this to a specific value, typically UTF-8, or maybe windows-1252. This will also reflect the encoding of any ARX-files produced. truncate = { UTF-8 | 8-BIT } Specify UTF-8 or 8-BIT to have RRR|Chive truncate character fields exceeding the field limit of the target server. Make sure the setting corresponds to the target charset of the target server and the client charset. Typically you set both clientcharset=UTF-8 and truncate=UTF-8 at the same time if your target server is UTF-8. logfile = CHAR This is where you specify the name of your logfile. If this field is not specified, all messages will be sent to STDOUT (the console). Specify AUTO to give the log file the same name as the config. For example rrrchive.cfg would result in rrrchive.log. loglevel = { EMERGENCY | ALERT | CRITICAL | ERROR | WARNING | NOTICE | INFO | DEBUG } If you specify INFO, all messages will be logged, including the Entry ID of each copied/moved record. A value of NOTICE can be more appropriate, as it will only log the actual number of records processed/copied/deleted. Default loglevel is NOTICE. logclearonrun = { YES | NO } Setting this value to YES will truncate the logfile before each run. This is probably not good for automated archiving, but can be nice when you run rrrchive manually from the command line. progressbar = { YES | NO } Setting this to yes will show a progress bar with the percentage that has been processed of each form. To improve readability, you can put a backslash (\) at the end of a line and countiue on the next. As a general rule, whitespace at the beginning and end of data (or list element) will not affect the setting. Note that if you set a param equal to "PROMPT", rrrChive will prompt for this parameter at run time. Use the configurator at http://www.rrr.se/ to create a config file skeleton. You can specify a form name between parameter and equal sign to have differentiated functionality for some forms. For example: skipfield ["COM:Company"] = '536870913'. You can specify a list of of forms separated by comma. Specify a * in the end of the name to specify trailing match. If you specify the brackets [form] on a separate line, all following lines will be for that (those) forms only. Reset this with another bracket row like [*].