This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Generation of Custom Entry Value

Hello,

we are using ActiveRoles Version 7 and want generate a new custom entry for resource mailbox scheduled options on the web interface.
I have, as described in the Active Roles SDK documentation under point "Creating a Custom Entry", created the entries for edsaWIForms, edsaWIEntries and edsaWIStrings.
Following I add the Get_XXX and Set_XXX procedures to the file '<WI folder>\Public\CustomCode\Entries.vbs.
This worked, but the RegisterAttributeControl method seems not to work.

Does someone has a solution for this problem?

Regards,
Thomas Welker

Following my Entries.vbs script.


<%
' Put code for your entries here.

Sub Get_KBIT_MailboxResourcePolicy(ByRef objFormContext, ByRef objFormPage)

  Dim strHTML, boolAllowConflicts, strAllowConflictsChecked, boolAllowRecurringMeetings, strAllowRecurringMeetingsChecked, boolScheduleOnlyDuringWorkHours, strScheduleOnlyDuringWorkHoursChecked, boolEnforceSchedulingHorizon, strEnforceSchedulingHorizonChecked

  boolAllowConflicts = CBool(objFormContext.GetValue("edsva-MsExch-AllowConflicts"))
  boolAllowRecurringMeetings = CBool(objFormContext.GetValue("edsva-MsExch-AllowRecurringMeetings"))
  boolScheduleOnlyDuringWorkHours = CBool(objFormContext.GetValue("edsva-MsExch-ScheduleOnlyDuringWorkHours"))
  boolEnforceSchedulingHorizon = CBool(objFormContext.GetValue("edsva-MsExch-EnforceSchedulingHorizon"))

  If boolAllowConflicts = True Then
     strlAllowConflictsChecked = "checked='checked'"
  Else
     strAllowConflictsChecked = ""
  End If

  If boolAllowRecurringMeetings = True Then
     strAllowRecurringMeetingsChecked = "checked='checked'"
  Else
     strAllowRecurringMeetingsChecked = ""
  End If

  If boolScheduleOnlyDuringWorkHours = True Then
     strScheduleOnlyDuringWorkHoursChecked = "checked='checked'"
  Else
     strScheduleOnlyDuringWorkHoursChecked = ""
  End If

  If boolEnforceSchedulingHorizon = True Then
     strEnforceSchedulingHorizonChecked = "checked='checked'"
  Else
     strEnforceSchedulingHorizonChecked = ""
  End If

  strHTML =  _
      "<li style='list-style-type:none'><label><input type='checkbox' id='AllowConflicts' name='AllowConflicts' value='AllowConflicts' " & strAllowConflictsChecked & ">&nbsp;Allow conflicting meeting requests</label></li>" _
    & "<li style='list-style-type:none'><label><input type='checkbox' id='AllowRecurringMeetings'name='AllowRecurringMeetings' value='AllowRecurringMeetings' " & strAllowRecurringMeetingsChecked & ">&nbsp;Allow repeating meetings</label></li>" _
    & "<li style='list-style-type:none'><label><input type='checkbox' id='ScheduleOnlyDuringWorkHours'name='ScheduleOnlyDuringWorkHours' value='ScheduleOnlyDuringWorkHours' " & strScheduleOnlyDuringWorkHoursChecked & ">&nbsp;Allow scheduling only during working hours</label></li>" _
    & "<li style='list-style-type:none'><label><input type='checkbox' id='EnforceSchedulingHorizon' name='EnforceSchedulingHorizon' value='EnforceSchedulingHorizon' " & strEnforceSchedulingHorizonChecked & ">&nbsp;Reject repeating meetings that have an end date beyond the booking window</label></li>"
 
  Call objFormPage.Write(strHtml)


  objFormPage.RegisterAttributeControl "AllowConflicts", "edsva-MsExch-AllowConflicts"
  objFormPage.RegisterAttributeControl "AllowRecurringMeetings", "edsva-MsExch-AllowRecurringMeetings"
  objFormPage.RegisterAttributeControl "ScheduleOnlyDuringWorkHours", "edsva-MsExch-ScheduleOnlyDuringWorkHours"
  objFormPage.RegisterAttributeControl "EnforceSchedulingHorizon", "edsva-MsExch-EnforceSchedulingHorizon"


End Sub


' Save value of user four option checkboxes

Sub Set_KBIT_MailboxResourcePolicy(ByRef objFormContext)

  'Dim strAllowConflicts, strAllowRecurringMeetings, strScheduleOnlyDuringWorkHours, strEnforceSchedulingHorizon, outFile

  ' Retrieve the value passed with the mailbox feature checkboxes
  strAllowConflicts = Request("AllowConflicts")
  strAllowRecurringMeetings = Request("AllowRecurringMeetings")
  strScheduleOnlyDuringWorkHours = Request("ScheduleOnlyDuringWorkHours")
  strEnforceSchedulingHorizon = Request("EnforceSchedulingHorizon")

  Set objFSO=CreateObject("Scripting.FileSystemObject")

  outFile="c:\ARS_Set_KBIT_MailboxResourcePolicy.log"
  Set objFile = objFSO.CreateTextFile(outFile,True)
  objFile.Write "AllowConflicts: " & strAllowConflicts & vbCrLf
  objFile.Write "AllowRecurringMeetings: " & strAllowRecurringMeetings & vbCrLf
  objFile.Write "ScheduleOnlyDuringWorkHours: " & strScheduleOnlyDuringWorkHours & vbCrLf
  objFile.Write "EnforceSchedulingHorizon: " & strEnforceSchedulingHorizon & vbCrLf
  objFile.Close

  If strAllowConflicts = "AllowConflicts" Then
    objFormContext.SetValue "edsva-MsExch-AllowConflicts", True
  Else
    objFormContext.SetValue "edsva-MsExch-AllowConflicts", False
  End If

  If strAllowRecurringMeetings = "AllowRecurringMeetings" Then
    objFormContext.SetValue "edsva-MsExch-AllowRecurringMeetings", True
  Else
    objFormContext.SetValue "edsva-MsExch-AllowRecurringMeetings", False
  End If

  If strScheduleOnlyDuringWorkHours = "ScheduleOnlyDuringWorkHours" Then
    objFormContext.SetValue "edsva-MsExch-ScheduleOnlyDuringWorkHours", True
  Else
    objFormContext.SetValue "edsva-MsExch-ScheduleOnlyDuringWorkHours", False
  End If

  If strEnforceSchedulingHorizon = "EnforceSchedulingHorizon" Then
    objFormContext.SetValue "edsva-MsExch-EnforceSchedulingHorizon", True
  Else
    objFormContext.SetValue "edsva-MsExch-EnforceSchedulingHorizon", False
  End If

End Sub
%>

  • Hello, Thomas.


    It's been a very long time since I've tried to do anything with Entries.vbs. In looking over your code, however, it appears to me that your objective is to display a number of checkboxes. Perhaps there is some other objective that I'm missing?

    If your goal is to display four new checkboxes, the approach that I would normally take would be to define four new boolean virtual attributes and add those attributes to the form using the "standard", GUI-base web interface customisation (i.e., no need to edit or code in Entries.vbs). Would that approach not suit your needs?

    Cheers,
    Shawn.

  • Hello Shawn,

    thanks for your answer.

    Just as you described it, I have already implemented. On the web interface this does not look very professional.

    For this reason, I want to create a custom entry to group the checkboxes (such as custom entry "accountOptionsFourOption").
    My solution works so far, only in the property generation policy predefined settings are not displayed in the web interface.
    After my assumption here, seems the function RegisterAttributeControl not be able to process data types boolean.
    Is this function used for this purpose, or not?

    Do you still have any idea?

    Best regards,
    Thomas

  • Hi, Thomas.

    Your use-case makes sense. The SDK documentation for this function is not especially clear, though I would interpret in the same way that you have. Unfortunately I'm not sure that I can offer any more insight. You may need to open a case with Support on this one. I would recommend that you create the simplest possible example of the problem before speaking with them, though.

    Sorry I couldn't offer more! Best of luck.