<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Efficy Overflow Q&amp;A - Recent questions and answers in to Efficy 10</title>
<link>https://overflow.efficy.io/?qa=qa/developers/migration/to-efficy-10</link>
<description>Powered by Question2Answer</description>
<item>
<title>Answered: Upgrade to Efficy 11 – Migration guide &amp; Best practices</title>
<link>https://overflow.efficy.io/?qa=3849/upgrade-to-efficy-11-migration-guide-best-practices&amp;show=3850#a3850</link>
<description>&lt;p&gt;Hi Stoko&lt;/p&gt;

&lt;p&gt;I shared you this &lt;a rel=&quot;nofollow&quot; href=&quot;https://files.efficy.com/file//list?p=rHN7WkV6rnFWHG-LwQ&quot;&gt;internal document&lt;/a&gt;, you can access is for 30 days.&lt;/p&gt;

&lt;p&gt;Regards,&lt;br&gt;
Kristof&lt;/p&gt;
</description>
<category>to Efficy 10</category>
<guid isPermaLink="true">https://overflow.efficy.io/?qa=3849/upgrade-to-efficy-11-migration-guide-best-practices&amp;show=3850#a3850</guid>
<pubDate>Thu, 10 Jan 2019 14:00:56 +0000</pubDate>
</item>
<item>
<title>Answered: Efficy 11: Flexmail settings Upgrade from Efficy 2014 ?</title>
<link>https://overflow.efficy.io/?qa=3440/efficy-11-flexmail-settings-upgrade-from-efficy-2014&amp;show=3444#a3444</link>
<description>&lt;p&gt;Hi Stéphane,&lt;/p&gt;

&lt;p&gt;The script has been removed since the new acc_auth mechanism does not allow what was done here. The password and the token are now encrypted directly by Efficy and this kind of manipulation can not be done in serverscript.&lt;/p&gt;

&lt;p&gt;To upgrade from Efficy 2014 to Efficy 11, I suggest to do the following step only once:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create in Conficy the flexmail user depending of information stored in sys_storage&lt;/li&gt;
&lt;li&gt;Edit the everyone group and select the new flexmail user.&lt;/li&gt;
&lt;li&gt;Copy the FLEXMAIL.K_FLEXMAIL of this new user.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Execute the function &lt;strong&gt;upgradeFrom6640To11&lt;/strong&gt; of the following upgrade script directly with a task scheduler (the kFlexmail needs to be replaced with the K_FLEXMAIL of the FLEXMAIL table):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/* upgradeFrom6640To11: Upgrade from Efficy 2014 (&amp;lt;= 6640) to Efficy 11 (or newer):
Initialize:
    field PUBL$EMAILING.K_FLEXMAIL
    field PROF_FLEXMAIL.FLEXGROUP_ID

upgradeFrom7987To11: Upgrade from Efficy 10 (v.7987) to Efficy 11 (newer):
Initialize:
    table PROF_FLEXMAIL (from PROF_FLEXPROFILE) 
*/

var EFFICY_PUBL_CATEGORY_NAME = 'PUBL$EMAILING';

function upgradeFrom6640To11() {
    var
        sql, ds, sqlContext, editHandle, categDs,
        kFlexmail;

    kFlexmail = 2;
    Database.Log('   [upgrade from Efficy 2014 (v.6640) to Efficy 11]');
    try {
        Database.DisableSecurity = true;
        Database.Log('--Linking Publications (PUBL$EMAILING) to Flexmail account...');
        sql = 'select K_PUBLICATION from &amp;lt;#TABLE name=PUBL$EMAILING&amp;gt; where CAMPAIGN_ID is not null';
        sqlContext = Database.OpenTemporaryContext;
        ds = Database.ExecuteSystemSQLQuery(0, sqlContext, sql, '', true, true, 0);
        if (!ds)
            throw new Error ('----Error while fetching records from table PUBL$EMAILING');
        if (!ds.IsEmpty) {
            ds.First;
            while (!ds.Eof) {
                editHandle = Database.OpenEditContext(ntPubl, ds.FieldByName('K_PUBLICATION').AsFloat);
                try {
                    Database.ActivateCategory(editHandle, EFFICY_PUBL_CATEGORY_NAME);
                    categDs = Database.GetCategoryDataSet(editHandle, EFFICY_PUBL_CATEGORY_NAME);
                    if (!categDs.IsEmpty) {
                        categDs.Edit;
                        categDs.FieldByName('K_FLEXMAIL').AsFloat = kFlexmail;
                        categDs.Post;
                        Database.CommitChanges(editHandle, false);
                    }
                }
                finally {
                    Database.CloseContext(editHandle);
                }
                ds.Next;
            }
        }

        Database.Log('--Linking Profiles (PROF$EMAILING) to Flexmail account...');
        sql = 'select pe.FLEXGROUPID, pe.K_PROFILE from &amp;lt;#TABLE NAME=PROF$EMAILING&amp;gt; pe where FLEXGROUPID is not null';
        ds = Database.ExecuteSystemSQLQuery(0, sqlContext, sql, '', true, true, 0);
        if (!ds)
            throw new Error ('----Error while fetching records from table PROF$EMAILING');
        if (!ds.IsEmpty) {
            ds.First;
            while (!ds.Eof) {
                try {
                    updateEfficyProfile(ds.FieldByName('K_PROFILE').AsFloat, kFlexmail, ds.FieldByName('FLEXGROUPID').AsString);
                }
                catch(ex) {
                    Database.Log('----Error while linking Profile to Flexmail account: K_PROFILE = ' + ds.FieldByName('K_PROFILE').AsString);
                }
                ds.Next;
            }
        }

    }
    finally {
        Database.DisableSecurity = false;
    }
}

function upgradeFrom7987To11() {
    var
        sql, ds, sqlContext;

    Database.Log('Migrating data from PROF_FLEXPROFILE to PROF_FLEXMAIL');
    Database.Log('   [upgrade from Efficy 10 (v.7987) to Efficy 11]');
    sql = 'select K_FLEXMAIL, K_PROFILE, FLEXGROUP_ID from &amp;lt;#TABLE NAME=PROF_FLEXPROFILE&amp;gt;';
    try {
        sqlContext = Database.OpenTemporaryContext;
        ds = Database.ExecuteSystemSQLQuery(0, sqlContext, sql, '', true, true, 0);
        if (ds) {
            if (!ds.IsEmpty) {
                ds.First;
                while (!ds.Eof) {
                    try {
                        updateEfficyProfile(ds.FieldByName('K_PROFILE').AsFloat, ds.FieldByName('K_FLEXMAIL').AsFloat, ds.FieldByName('FLEXGROUP_ID').AsString);
                    }
                    catch(ex) {
                        Database.Log('--Impossible to migrate a record of PROF_FLEXPROFILE: K_PROFILE = ' + ds.FieldByName('K_PROFILE').AsString + ', K_FLEXMAIL = ' + ds.FieldByName('K_FLEXMAIL').AsString);
                        Database.Log('  (record probably already exists)');
                    }
                    ds.Next;
                }
            }
        }
        else
            Database.Log('--No records PROF_FLEXPROFILE found =&amp;gt; Nothing to be done');
    }
    catch(ex) {
        Database.Log('--No records PROF_FLEXPROFILE found =&amp;gt; Nothing to be done');
    }
}

// Fill flex group ID in Efficy profiles
function updateEfficyProfile(kProfile, kFlexmail, flexGroupId) {
    var editHandle = 0;
    if (kProfile) {
        editHandle = Database.OpenEditContextRelation2(ntProf, ntFlexmail, kProfile, kFlexmail);
        try {
            Database.UpdateStringField(editHandle, 0, 'FLEXGROUP_ID', flexGroupId);
            Database.CommitChanges(editHandle, false);
        }
        finally {
            Database.CloseContext(editHandle);
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you have to upgrade from Efficy 10 r7987 to a newer version, execute the &lt;strong&gt;upgradeFrom7987To11&lt;/strong&gt; function to transfer information from &lt;strong&gt;PROF_FLEXPROFILE&lt;/strong&gt; to &lt;strong&gt;PROF_FLEXMAIL&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We will no longer do this kind of upgrade function as it can not be easily maintained. In the future, the UpgradeDB will always be used for this kind of manipulation. For example, to migrate from Efficy 10 to Efficy 11, the upgradeDB is taking care of the migration of the table FLEXMAIL to the table ACC_AUTH and also migrates the field PROF$EMAILING.FLEXGROUP to FLEXKIND.&lt;/p&gt;

&lt;p&gt;Kind regards,&lt;/p&gt;
</description>
<category>to Efficy 10</category>
<guid isPermaLink="true">https://overflow.efficy.io/?qa=3440/efficy-11-flexmail-settings-upgrade-from-efficy-2014&amp;show=3444#a3444</guid>
<pubDate>Fri, 03 Aug 2018 09:10:15 +0000</pubDate>
</item>
<item>
<title>Answered: Upgrade to Efficy 10 – Migration guide &amp; Best practices</title>
<link>https://overflow.efficy.io/?qa=1706/upgrade-to-efficy-10-migration-guide-best-practices&amp;show=1709#a1709</link>
<description>&lt;h2&gt;From Efficy 2014 to Efficy 10&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A/ What to be checked&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Of course, all custom must be tested, but, the “general” structure of the files, the macros, the Js and the Css, is the same. However, there is some file you will always need to adapt if you are coming from an Efficy 2014 to an Efficy 10.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This list is not exhaustive:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1.Js files&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In some file, the « define ([…] » as changed (some Js files are new, and some Js file have been moved). Also, base/, utils/, … are not necessary anymore. So, you need to verify the define of all your custom files in Js folder.&lt;/p&gt;

&lt;p&gt;The best way, is to replace the define in your custom, by the define copied from the standard file, and add your custom define if needed. (easy to do with a tools like beyond compare)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. Css/Scss files&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have a custom efficy.css generated by a custom scss, you need to adapt the “_custom-settings.scss” file, because Efficy 10 comes with Badges and Chronos (TimeLine) who have some Css configuration.&lt;/p&gt;

&lt;p&gt;The best way to upgrade this file, is to write a new one, who is a copy of the standard “&lt;em&gt;app-settings.scss” and reintegrate your custom in this new file (keep the same name for the new file “&lt;/em&gt;custom-settings.scss” there is no reason to change it), and recompile your efficy.css.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3. Macro files&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With coming of TimeLine, we have a new tab, so, in each macro who display or use multiple entities like “DetailSelectTabs” or “DetailTabsButtons” for example, you need to compare with the standard file, and add the timeline if needed.&lt;/p&gt;

&lt;p&gt;Badges are also new, so, some macro like “DetailTabs” must be checked to integrate new standard badges if you have customized these macros.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;4.Htm files&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It’s difficult to point something, each file where you have a custom must be opened in Efficy, to see if your custom is always working good, if not, compare with the standard file.&lt;/p&gt;
</description>
<category>to Efficy 10</category>
<guid isPermaLink="true">https://overflow.efficy.io/?qa=1706/upgrade-to-efficy-10-migration-guide-best-practices&amp;show=1709#a1709</guid>
<pubDate>Tue, 14 Jun 2016 13:02:15 +0000</pubDate>
</item>
</channel>
</rss>