У меня проблема с формой InfoPath 2010, в которой есть какой-то код. Цель моей формы - собрать данные от пользователя и, используя предоставленные ответы, автоматически заполнить ряд необходимых задач. Эти задачи заполняются в повторяющемся разделе формы. Мой код содержит логику для автоматического заполнения каждой записи в повторяющемся разделе. Я использую класс XMLWriter и методы WriteStringElement для заполнения каждого из полей в повторяющемся разделе.
Первоначально вся эта логика выглядит так, как ожидается, разделы заполняются, как и ожидалось. Однако теперь я понимаю, что существует проблема с полями, записанными в форму XML.
Использование рабочего процесса. Я создаю задачи SharePoint для каждого из элементов в повторяющемся разделе. После завершения задачи я записываю статус и дату завершения обратно в форму. У меня проблема в том, что я явно не заполняю поле CompletedDate при первоначальной настройке задач в форме. Я предполагал, что поле будет автоматически добавлено в форму XML с атрибутом xsi: nil = true. Вместо этого его вообще нет в XML, и мой рабочий процесс выдает ошибку «Ссылка на объект не установлена» при поиске узла «faCompletedDate». Проверяя XML формы, его там нет.
Решение, которое мне нужно, заключается в том, чтобы выписать атрибут xsi: nil для faCompletedDate в коде формы, я не уверен, как это сделать.
Я пытался:
writer.WriteStartElement("faCompletedDate", myNs)
writer.WriteAttributeString("xsi", "nil", xsiNs, "true")
writer.WriteEndElement()
но при этом при проверке схемы выдается ошибка, не относящаяся к типу данных.
Может кто-нибудь помочь мне решить эту проблему и предложить наилучший подход к использованию.