Sub Initialize On Error Goto ErroRoutine Dim doc As NotesDocument Dim pairings As Variant, split_pairings As Variant, split_name As Variant Dim last_processed As String If web.document.HasItem ("REQUEST_CONTENT") Then pairings = Evaluate(|@Explode(REQUEST_CONTENT; "&")|, web.document) 'loop all the name/value pairings submitted by the form Forall v In pairings 'Need to replace + for " " at this point! before it's decoded! split_pairings = Evaluate(|@URLDecode("Domino"; @ReplaceSubstring(@Explode("|+v+|"; "="); "+"; " "))|) split_name = Evaluate(|@Explode(@ReplaceSubstring("|+split_pairings(0)+|";"]";"");"[")|) If Ubound(split_name)>0 Then 'we have something to process (that is, a special bracketed [] field) 'save the last processed document if not same as this one! If split_name(1) <> last_processed And last_processed<>"" Then Call doc.Save( True, True) End If 'get the next document to process Set doc = web.database.GetDocumentByUNID( split_name(1) ) If Not doc Is Nothing Then If Ubound(split_pairings)>0 Then ' we have a value Call doc.ReplaceItemValue(split_name(0), split_pairings(1)) Else 'blank Call doc.ReplaceItemValue(split_name(0), "") End If last_processed = doc.UniversalID End If End If End Forall 'Now save the last document processed before we left the loop Call doc.Save( True, True) End If '$$RETURN to where they came from Print "["+web.document.HTTP_Referer(0)+"]" GracefulExit: Exit Sub ErroRoutine: Print "Error" + Error + " on line " + Cstr(Erl) Resume GracefulExit End Sub