Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

...

  • Name - Descriptive name for profile questions for internal use

  • Question - Question for the data being requested

  • Required - check box to force this question to be required when its shown, for example on add account

  • Hidden - Does the profile question appear on the account

  • Read Only - Cannot be edited once entered

  • Display Name - The name that will show to the user in the interface when this profile questions is presented

  • Default Answer - This can be completed or left blank, if completed, it will pre-populate the profile question answers on the page

  • Multiple Answers - Allows the user to add the Profile Question more than once in the interface, meaning the same Question can be added with multiple answers. E.g. this could be used to track MAC Addresses for multiple CPE devices

  • Unique Answer - Require that the answer provided be unique within EngageIP. For example a DID / WTN that needs to be unique within EngageIP for usage billing purposes

  • Profile Questions Type Options

    • Parent - If parent is selected, it will set this profile questions as a parent / container to which you can add other profile questions It basically allows grouping of profile questions under the 'parent' entity / profile questions. For example, you may want to group a set of security questions together and add them all at once to each of your services, you could put them under a 'parent' profile questions and then when they are answered, they would show as one line item under the service with multiple answers (one per profile questions). They would also be editable all on the same page for quick updating as opposed to separate profile questions which you would need to edit individually.

      • To add parent / child profile questions, do the following:

        • Add profile question, configure as parent, really just need a parent name here, click save

        • Add another profile question. Select the above profile question as the parent of this one, enter your question and datatype and other appropriate info. This is the profile question which will ask and house the data

        • Add more profile questions underneath the parent as needed.

        • When complete, the profile questions will show in a tree format similar to the image here. Child questions show below the parent with arrows indicating the relationship:

      Entered - this is the start of the radio button list to select the type of input, entered means a text box is available

      • Data Type - defines the validation, for example if Phone Number is selected, it will validate inputted data to be sure its a real phone number

    • Select From List - radio button for list selection

      • Options - options for select list can be comma separated. e.g. 'red,blue,purple,yellow'. This allows the user to select from this custom set of options

    • Select From Table - radio button for a dropdown with options from a table

      • Table - this lists the tables in the EngageIP database (named BOSS usually). The options presented will be the first column from the table. The tables listed will only be EngageIP default tables, no custom or added tables will be available. To create your own, use a List Provider, detailed below

    • Selected From List Provider - radio button to allow selection from an external data source

      • List Provider - the list providers as configured on the setup tabpage. These can be configured to pull data from any external source or database

    • Multi-Select From List Provider - radio button for allowing multiple selections

      • Multi-Select List Provider - similar to above, allows more then one option from an external database

  • Data Type - radio button that allows you to select the data type used to validate the profile answer entered

  • Help Text  - text that displays under the text box or to provide an example for the format of the inputted data

  • Show on Overview (not shown in image) - this when checked will show the profile answer on the user overview page in the components section
    Notice: there is a limit of 50 Profile Answers on a given Overview page to prevent performance issues, if there are more than 50 answers to display you will see the message, "Sorry there are too many UserService Profile Answers to display. Please use the search box for accessing these details."  The Search Box is located on the left sidebar

  • Show on User Package (not shown in image) - this when checked will show the answer on the users package when on the packages page. For detail and troubleshooting with this option, please see Package and Service Icons

  • Invoice in Invoice XML (not shown in image)- This allows you to reference the profile questions and answer in the invoice template so that you can display or use this data. See Invoice Template Sample Code

  • Restrict Access To Only These Roles - Allows you to restrict access to this profile questions from certain roles

  • Show On View Filter (not shown in image)- allows the profile answers to show as a column on views or reports where the report includes account names

...

Info

Note: The script below is only an example and will require modification before it can be used. See the following script for a usable example.

Code Block
languagec#
using System;
using System.Data;
using System.Data.SqlClient;
OrderedDictionary od = new OrderedDictionary();
string connectionString ="Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer";

// Provide the query string with a parameter placeholder.string queryString =

"SELECT ProductID, ProductName from dbo.products " + "WHERE UnitPrice > @pricePoint "

+ "ORDER BY UnitPrice DESC;";
// Specify the parameter value.

int paramValue = 5;

// Create and open the connection in a using block. This
// ensures that all resources will be closed and disposed
// when the code exits.

using (SqlConnection connection = new SqlConnection(connectionString))

{
// Create the Command and Parameter objects.
SqlCommand command = new SqlCommand(queryString, connection);
command.Parameters.AddWithValue("@pricePoint", paramValue);

// Open the connection in a try/catch block.
// Create and execute the DataReader, writing the result
// set to the console window.
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
od.Add("reader[0], "," reader[1]");   //Adds each item to the Ordered Dictionary
}
reader.Close();
}
catch (Exception ex)
{
//May need to do something here
}
}
return od;
Info

Note: you need to edit the SQL query and column name in code below.

Code Block
languagec#
using System.Data;
OrderedDictionary od = new OrderedDictionary();
System.Data.SqlClient.SqlConnection myConnection = new System.Data.SqlClient.SqlConnection(Logisense.Boss.Logic.DomainModel.Config.GetConnectionString());
myConnection.Open();
string queryString ="SELECT Account, Name FROM dbo.[User] WHERE RoleID = 570 ORDER BY Name;";
System.Data.SqlClient.SqlCommand sqlComm = new System.Data.SqlClient.SqlCommand(queryString, myConnection);
System.Data.SqlClient.SqlDataReader resourceList = sqlComm.ExecuteReader();
string resource, selecttitle;
selecttitle = "-- Select One --";
od.Add(selecttitle, selecttitle);
while(resourceList.Read())
{
resource = (string)resourceList["account"];
od.Add(resource, resource);
}
resourceList.Close();
myConnection.Close();
return od;

...