|
CRM Software - CABC | Maximizer | Maximizer Add-ons | Services | Support | Store | News |
![]() |
![]() |
|
Go
![]() |
New
![]() |
Find
![]() |
Notify
![]() |
Tools
![]() |
Reply
![]() |
|
|
Member |
My company is a regular user of Maximizer and recently started using the Customization Suite for Maximizer 9.
We have set up test servers - one for the portals, one for the Maximizer server, etc. - to play around with adding new functionality. Currently I (C# developer) am running into some problems trying to add pages and tabs etc., to the existing portals. Beyond what's in the Portal Guide, I haven't found any information on the web. If you're in a similar situation or if you have experience with developing for the version 9 Customization Suite, feel free to contact me at maxstark@xs4all.nl (or reply here) |
||
|
|
Member |
Ok
I've managed to add custom ASP.NET pages to the Customer Portal. I now want to show customer-specific information to the user that signs in, e.g. Mary Smart in the Escona Tutorial. The first problem I've run in to here, and haven't been able to solve, is how to identify the currently logged in user. The most obvious route to take here (I think) is to look into the session state: Maximizer.Data.User loggedInUser = (Maximizer.Data.User) Session["loggedInUser"]; However, when I then look at the contents of the loggedInUser object, it seems we have found the WEBUSER instead of Mary (detail fields blank, userid=WEBUSER). I can't proceed to show the customer her registered phone number, for instance. I'll post more info on this problem later. For now I hope anyone has useful thoughts |
|||
|
|
Member |
Done and solved!
Anyone ( _ANYONE_ |
|||
|
|
Member |
Here's the code (C#) I used to solve the problem:
// ------------------------------------------ // declare variables Maximizer.Data.AddressBookMaster oAb; Maximizer.Data.AbEntryAccess oAbEntryAccess; Maximizer.Data.AbEntry abe; string sLoginString; // get the current address book from session state oAb = (Maximizer.Data.AddressBookMaster)Session["maxAb"]; // create addressbook entry access sLoginString = Session["loginstring"] as string; oAbEntryAccess = oAb.CreateAbEntryAccess(sLoginString); // identify the customer (using the customer portal) abe = oAbEntryAccess.ReadList("KEY(" + Session["visitorKey"] + ")").Item(0); // now you have access to the address book entry corresponding to the logged in customer, // e.g. Mary Smart in the Escona Tutorial. // ------------------------------------------ |
|||
|
|
Member |
At the moment I'm trying to see if it's possible to let a customer (in the customer portal) alter some of his/her own UDFs (e.g. when a customer logs into the portal, we would like to present a UDF that stores certain preferences for the customer. Allowing the customer to do this himself, saves us time).
The Portal Guide (and other guides) don't seem to document this area. The only documented route I've been able to find is how to read (read-only) UDF information like so: // ----------------- Maximizer.Data.AddressBookMaster oAb = (Maximizer.Data.AddressBookMaster)Session["maxAb"]; Maximizer.Data.UdfAccess udfa = oab.CreateUdfAccess(sLoginString); Maximizer.Data.UdfDefinitionList udfdeflist = udfa.ReadUdfDefinitionList(Session["visitorKey"].ToString()); Maximizer.Data.MxField mxf = udfa.ReadUdf(udfdeflist.Item(0),Session["visitorKey"].ToString() ); Label1.Text = mxf.get_FieldLabel(); TextBox1.Text = mxf.ToString(); // this gives "Region" and "US - Midwest" respectively for example customer "Mary Smart" in the Escona Tutorial. // ----------------- I want to change, say, Region, to a different value. However, most members are read only. So I'm stuck here. There are .Insert and .Update functions for the UdfAccess object, but I haven't been able to accomplish anything with them (not sure how to use them). Any help would be appreciated. P.S. I've tried looking at how the standard customer portal handles this in the "personalize" web page dialog. I stranded in this search while trying to disassemble the call this dialog makes to Maximizer.External.DLL with the .NET Reflector (from http://www.aisto.com/roeder/dotnet/). This disassembled code has renamed members (hard/impossible to analyse) -> example code: // ----------------- private string b(){ string[] textArray1 = this.hidSelectedValues.Value.Split("|".ToCharArray()); if (this.e.Field null){ this.e.NewEmptyField(true); this.e.UserInt |= 1; } else{ this.e.UserInt |= 2; } MxTable table1 = (MxTable) this.e.Field; table1.Items.Clear(); for (int num1 = 0; num1 < this.e.Items.Count; num1++){ Option option1 = this.e.Items.Item(num1); for (int num2 = 0; num2 < textArray1.Length; num2++) if (textArray1[num2] option1.FieldValue) table1.Items.Add(option1); } if (this.d){ try{ UdfAccess access1 = ((AddressBookMaster) this.Session["maxAb"]).CreateUdfAccess(this.c); try{ access1.Update(table1, this.Session["visitorKey"].ToString()); } catch (Exception){ try{ access1.Insert(table1, this.Session["visitorKey"].ToString()); } catch (Exception){ } } } catch (Exception){ } } return table1.ToString(); // ----------------- |
|||
|
|
New Member |
I am desperatley trying to do the same thing - allow users logged into the Maximizer 9 Customer Portal to edit their own UDFs.
If anyone out there has ever managed to get this working please reply to this forum. I am near my wits end. Thank-you and Regards, Shane. |
|||
|
| Powered by Social Strata |
| Please Wait. Your request is being processed... |
|
|
CRM Software - CABC | Maximizer | Maximizer Add-ons | Services | Support | Store | News |

