Page 1 of 1

ESD didn't go so well (SerialKeyData)

Posted: Tue Jun 30, 2009 9:37 pm
by NC Software
I had a very basic import from AC 5, just Orders and Users. As I sell mainly software I have ESD licensing data. It looks like the HTML was not decoded and there is quite a bit of a mess in the SerialKeyData table which I'll have to run scripts against to fix. It's all HTML encoded data, etc. Also, when viewing a prior AC5 order that has a serial key associated it doesn't find it, you get an object reference error, etc.

Quite unfortunate but I hate to say - expected! Probably hasn't been tested.

The DataPort process is heinously slow. So slow that you need to put a sound at completion because most are going to do something else or walk away. My small store took over an hour I think it was. Maybe you can take advantage of SQL Bulk Copy or something, but this is quite frankly sad to see. It can be done far better!

Re: ESD didn't go so well (SerialKeyData)

Posted: Wed Jul 01, 2009 3:46 pm
by NC Software
Here is my DataPort 7.0.3.1 SerialKey mess. I'm going to have to dump this down via a VB.NET app, hopefully decode it and put it back in properly. It's obviously a mess from the XML encoding.

Re: ESD didn't go so well (SerialKeyData)

Posted: Thu Jul 02, 2009 6:37 pm
by NC Software
When someone tries to retrieve a SerialKey from AC5 data, the DigitalGood name is not know so it throws an error. The error is thrown in the second line from the bottom:

Code: Select all

public partial class ConLib_MySerialKeyPage : System.Web.UI.UserControl
{
    private int _OrderItemDigitalGoodId;
    private OrderItemDigitalGood _OrderItemDigitalGood;

    protected void Page_Init(object sender, EventArgs e)
    {
        _OrderItemDigitalGoodId = AlwaysConvert.ToInt(Request.QueryString["OrderItemDigitalGoodId"]);
        _OrderItemDigitalGood = OrderItemDigitalGoodDataSource.Load(_OrderItemDigitalGoodId);
        if (_OrderItemDigitalGood == null) Response.Redirect("MyAccount.aspx");
        if ((_OrderItemDigitalGood.OrderItem.Order.UserId != Token.Instance.UserId) && (!Token.Instance.User.IsInRole(Role.OrderAdminRoles))) Response.Redirect(NavigationHelper.GetStoreUrl(this.Page, "Members/MyAccount.aspx"));
        //UPDATE CAPTION
        Caption.Text = String.Format(Caption.Text, _OrderItemDigitalGood.DigitalGood.Name);
        SerialKeyData.Text = _OrderItemDigitalGood.SerialKeyData;
    }
}

Re: ESD didn't go so well (SerialKeyData)

Posted: Fri Jul 03, 2009 4:46 am
by Naveed
Thanks for pointing out the issues with Digital Good import. Please try to post as much details as possible.

NC Software wrote:When someone tries to retrieve a SerialKey from AC5 data, the DigitalGood name is not know so it throws an error. The error is thrown in the second line from the bottom:
Please post the error details. What error is thrown?

Re: ESD didn't go so well (SerialKeyData)

Posted: Fri Jul 03, 2009 4:55 am
by NC Software
Object reference type error. It's because the digital good name is null. I changed the code so it checks if it's null, if so then it just writes "Your Serial Key Information:" and if not null then it does the replacement as designed.